当前位置: 首页 > wzjs >正文

asp.net c 网站开发网络推广的细节

asp.net c 网站开发,网络推广的细节,wordpress连续滚动图片,网上商城网站开发公司一、实现效果:输入中点坐标点、内圆半径、外圆半径,绘制坐标点所在高度的水平面的两个圆形形成环形区域。 二、实现原理: 创建中心点所在平面的圆形几何体,将其分别挂接到同一个节点上,再将该节点挂接到用户绘制组节…

一、实现效果:输入中点坐标点、内圆半径、外圆半径,绘制坐标点所在高度的水平面的两个圆形形成环形区域。
在这里插入图片描述

二、实现原理:
创建中心点所在平面的圆形几何体,将其分别挂接到同一个节点上,再将该节点挂接到用户绘制组节点,用户绘制组节点挂接到地球节点。
三、参考代码:

void GlobeWidget::drawAnnularRegion(osg::Vec3d point, double innerRadius, double outerRadius)
{osgViewer::Viewer* viewer = m_osgWidget->getOsgViewer();if (!viewer) return;// 使用 osgEarth 转换经纬度到地球坐标osgEarth::GeoPoint geoPoint(osgEarth::SpatialReference::get("wgs84"),point.x(), point.y(), point.z(), osgEarth::ALTMODE_ABSOLUTE);osg::Vec3d cartesianCenter;geoPoint.toWorld(cartesianCenter);  // 转换为地球坐标系// 计算地表法线(从地心指向圆心)osg::Vec3d surfaceNormal = cartesianCenter;surfaceNormal.normalize();// 找到一个与地表法线垂直的向量osg::Vec3d rightVector;if (std::abs(surfaceNormal.x()) < 0.9) {rightVector = osg::Vec3d(1.0, 0.0, 0.0);} else {rightVector = osg::Vec3d(0.0, 1.0, 0.0);}rightVector = rightVector - surfaceNormal * (rightVector * surfaceNormal);rightVector.normalize();// 计算另一个垂直向量osg::Vec3d forwardVector = surfaceNormal ^ rightVector;forwardVector.normalize();// 创建环形区域的几何体osg::ref_ptr<osg::Geode> geode = new osg::Geode;osg::ref_ptr<osg::Geometry> geometry = new osg::Geometry;// 创建顶点数组osg::ref_ptr<osg::Vec3Array> vertices = new osg::Vec3Array;const int numSegments = 36;// 存储外圆顶点数量int outerVertexCount = 0;for (int i = 0; i <= numSegments; ++i) {double angle = 2.0 * osg::PI * static_cast<double>(i) / static_cast<double>(numSegments);// 计算外圆上的点osg::Vec3d outerOffset = rightVector * cos(angle) * outerRadius + forwardVector * sin(angle) * outerRadius;osg::Vec3d outerPoint = cartesianCenter + outerOffset;vertices->push_back(outerPoint);outerVertexCount++;}for (int i = numSegments; i >= 0; --i) {double angle = 2.0 * osg::PI * static_cast<double>(i) / static_cast<double>(numSegments);// 计算内圆上的点osg::Vec3d innerOffset = rightVector * cos(angle) * innerRadius + forwardVector * sin(angle) * innerRadius;osg::Vec3d innerPoint = cartesianCenter + innerOffset;vertices->push_back(innerPoint);}geometry->setVertexArray(vertices.get());// 设置颜色(透明填充,仅显示边框)osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array;colors->push_back(osg::Vec4(1.0f, 0.0f, 0.0f, 0.0f));geometry->setColorArray(colors.get());geometry->setColorBinding(osg::Geometry::BIND_OVERALL);// 设置外圆图元为线带geometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_STRIP, 0, outerVertexCount));// 设置内圆图元为线带geometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_STRIP, outerVertexCount, vertices->size() - outerVertexCount));// 设置虚线样式osg::ref_ptr<osg::LineStipple> lineStipple = new osg::LineStipple;lineStipple->setFactor(1);lineStipple->setPattern(0xAAAA);osg::ref_ptr<osg::StateSet> stateSet = geometry->getOrCreateStateSet();stateSet->setAttributeAndModes(lineStipple.get(), osg::StateAttribute::ON);stateSet->setMode(GL_LINE_STIPPLE, osg::StateAttribute::ON);geode->addDrawable(geometry.get());// 将 Geode 添加到根节点m_userDrawGroup->addChild(geode.get());// 强制刷新场景viewer->requestRedraw();
}```
http://www.dtcms.com/wzjs/363676.html

相关文章:

  • 网站建设便宜苏州百度搜索排名优化
  • 在网络上做兼职的网站做seo要投入什么
  • wordpress开启ssl变慢seo建站是什么意思
  • 海口建设网站的公司互联网营销策划方案
  • 网站的佣金怎么做会计分录西安优化网站公司
  • 网站如何开通微信支付接口免费的拓客平台有哪些
  • 住房和城乡建设部网站bim百度软件应用市场
  • 海原电商网站建设网络舆情监测系统软件
  • 手机网页版传奇关键词优化网站排名
  • 柳州网站建设工作室广告公司业务推广
  • 网站建设域名什么意思百度搜索指数排行榜
  • java网站开发实例下载seo关键词优化排名公司
  • 五合一网站定制搜狗站长工具平台
  • 常州专业做网站百度热搜排名
  • 武汉光谷医院厦门seo全网营销
  • 网络设计包括哪些北京seo供应商
  • 贵阳网站建设公司排名常见的网站推广方法
  • 做竞价网站 要注意什么友情链接系统
  • 室内设计师灵感网站关键词搜索热度查询
  • 怎么做微网站推广六年级上册数学优化设计答案
  • 网站开发 零基础今日新闻热点大事件
  • 兰州网站开发价格投放广告找什么平台
  • 个人网站名称要求淘宝网店怎么运营起来
  • 智能家居网站建设可行性分析报告百度识图搜索引擎
  • 网站怎么做seo百度快照推广一年要多少钱
  • 动态网站建设试题外贸电商平台哪个网站最好
  • 跨境建站服务公司百度我的订单
  • 怎么做多个域名指向一个网站seo文章范文
  • 哪个网站可以免费学做美甲莆田网站建设优化
  • 建设银行网站上的的研究报告十五种常见的销售策略