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

基于php网站开发步骤百度竞价培训班

基于php网站开发步骤,百度竞价培训班,使用局域网可以做网站吗,北京网站建设的服务公司一、实现效果 二、实现原理 输入四个坐标点,第一个点为中心点,第二三四个点分别以中心点与地面垂线所在线上的各自高度水平面的交点为圆心旋转360进行圆形区域绘制,然后将三个不同高度上的圆形区域进行结合形成三维覆盖区域的轮廓面。 三、参…

一、实现效果
在这里插入图片描述
二、实现原理
输入四个坐标点,第一个点为中心点,第二三四个点分别以中心点与地面垂线所在线上的各自高度水平面的交点为圆心旋转360°进行圆形区域绘制,然后将三个不同高度上的圆形区域进行结合形成三维覆盖区域的轮廓面。
三、参考代码

void GlobeWidget::draw3dCoverageRegion(const osg::ref_ptr<osg::Vec3Array>& points)
{if (!points || points->size() < 4)return;const osg::Vec3d& centerGeo = (*points)[0];osgEarth::GeoPoint geoCenter(osgEarth::SpatialReference::get("wgs84"),centerGeo.x(), centerGeo.y(), centerGeo.z(),osgEarth::ALTMODE_ABSOLUTE);osg::Vec3d centerWorld;geoCenter.toWorld(centerWorld);osg::Vec3d axis = centerWorld;axis.normalize();// === 圆形 ===const int segments = 60;  // 保证每个圆的分段数量一致std::vector<osg::ref_ptr<osg::Vec3Array>> circles;std::vector<int> layerOffsets;int vertexOffset = 0;// 绘制每个圆for (int i = 1; i <= 3; ++i){const osg::Vec3d& ptGeo = (*points)[i];osgEarth::GeoPoint geoPt(osgEarth::SpatialReference::get("wgs84"),ptGeo.x(), ptGeo.y(), ptGeo.z(),osgEarth::ALTMODE_ABSOLUTE);osg::Vec3d ptWorld;geoPt.toWorld(ptWorld);osg::Vec3d radiusVec = ptWorld - centerWorld;osg::ref_ptr<osg::Vec3Array> circlePts = new osg::Vec3Array();// 使用相同的分段数,避免缺口for (int j = 0; j < segments; ++j){double angle = osg::DegreesToRadians(360.0 * j / segments);osg::Matrixd rot = osg::Matrixd::rotate(angle, axis);osg::Vec3d rotated = radiusVec * rot;circlePts->push_back(centerWorld + rotated);}// 绘制当前圆osg::ref_ptr<osg::Geometry> circleGeom = new osg::Geometry();circleGeom->setVertexArray(circlePts);circleGeom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, 0, circlePts->size()));osg::ref_ptr<osg::Vec4Array> circleColor = new osg::Vec4Array();circleColor->push_back(osg::Vec4(0.0, 1.0, 0.0, 1.0));circleGeom->setColorArray(circleColor, osg::Array::BIND_OVERALL);osg::ref_ptr<osg::Geode> circleGeode = new osg::Geode();circleGeode->addDrawable(circleGeom);m_userDrawGroup->addChild(circleGeode);circles.push_back(circlePts);layerOffsets.push_back(vertexOffset);vertexOffset += circlePts->size();}// === 轮廓面 ===osg::ref_ptr<osg::Vec3Array> meshVerts = new osg::Vec3Array();osg::ref_ptr<osg::DrawElementsUInt> meshIndices = new osg::DrawElementsUInt(GL_TRIANGLES);// 合并所有圆的顶点for (auto& c : circles){for (auto& pt : *c)meshVerts->push_back(pt);}// 连接每一层圆之间的三角形for (size_t i = 0; i < circles.size() - 1; ++i){const int offset0 = layerOffsets[i];const int offset1 = layerOffsets[i + 1];// 确保每层圆的点数一致const int count = segments;for (int j = 0; j < count - 1; ++j){// 创建三角形meshIndices->push_back(offset0 + j);meshIndices->push_back(offset1 + j);meshIndices->push_back(offset0 + j + 1);meshIndices->push_back(offset0 + j + 1);meshIndices->push_back(offset1 + j);meshIndices->push_back(offset1 + j + 1);}// 最后一个三角形:补全圆的缺口meshIndices->push_back(offset0 + count - 1);meshIndices->push_back(offset1 + count - 1);meshIndices->push_back(offset0);meshIndices->push_back(offset0);meshIndices->push_back(offset1 + count - 1);meshIndices->push_back(offset1);}osg::ref_ptr<osg::Geometry> meshGeom = new osg::Geometry();meshGeom->setVertexArray(meshVerts);meshGeom->addPrimitiveSet(meshIndices);osg::ref_ptr<osg::Vec4Array> meshColor = new osg::Vec4Array();meshColor->push_back(osg::Vec4(1.0, 1.0, 0.0, 0.4));  // 半透明黄色meshGeom->setColorArray(meshColor, osg::Array::BIND_OVERALL);meshGeom->getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON);meshGeom->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);meshGeom->getOrCreateStateSet()->setMode(GL_CULL_FACE, osg::StateAttribute::OFF);osg::ref_ptr<osg::Geode> meshGeode = new osg::Geode();meshGeode->addDrawable(meshGeom);m_userDrawGroup->addChild(meshGeode);// === 视角聚焦 ===if (m_osgWidget && m_osgWidget->getOsgViewer()){osgViewer::Viewer* viewer = m_osgWidget->getOsgViewer();osgEarth::Util::EarthManipulator* manip =dynamic_cast<osgEarth::Util::EarthManipulator*>(viewer->getCameraManipulator());if (manip){osgEarth::Viewpoint vp("Focus", centerGeo.x(), centerGeo.y(), centerGeo.z() + 300,0.0, -90.0, 1500.0);manip->setViewpoint(vp, 2.0);}}
}
http://www.dtcms.com/wzjs/376864.html

相关文章:

  • wampserver做动态网站优化推广网站排名
  • 用微信微博网站来做睡眠经济网络暴力事件
  • 北京王府井简介正规网站优化哪个公司好
  • 网站建设方案策划书seo标题优化裤子关键词
  • html5做网站好吗seo是谁
  • 如何做一家类似携程的网站广州疫情最新新增
  • 制作旅游网站简单百度热搜榜排名今日
  • 网站开发软件是什么专业今天的新闻摘抄
  • 沈阳做手机网站的公司免费网站收录网站推广
  • 大学生兼职网站建设策划书拍照搜索百度识图
  • 毕节网站怎么做seo免费发布信息平台有哪些
  • 做pc端网站效果网络营销方法有哪些?
  • 购物网站建设与开发上海网络排名优化
  • 做网站现在赚钱吗厦门关键词排名优化
  • 加强普法网站建设的通知做网站的软件有哪些
  • 接手一个新的网站应该怎样做怎么让百度快速收录网站
  • 威海网站建设哪一家如何设计一个网站页面
  • 中国风网站模板网站推广优化排名seo
  • 手机企业网站怎么做百度长尾关键词挖掘
  • cnnic可信网站必须做吗百度问答首页
  • 珠海企业网站建设报价百度下载app下载安装
  • asp.net 如何设置网站首页国外网站seo免费
  • 毕设代做的网站温州seo博客
  • 做网站 什么语言好最新国内新闻50条简短
  • 视频网站X站H站搭建建设谷歌浏览器安卓版下载
  • 广州做网站的公司seo外包服务
  • 吃的网站要怎么做的seo发包技术教程
  • 常见的网页布局有几种方式网站优化外包
  • 石湾手机网站建设江门网站建设
  • 沧州网站建设王宝祥怎么请专业拓客团队