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

GIS开发笔记(6)结合osg及osgEarth实现半球形区域绘制

一、实现效果
输入中心点坐标及半径,绘制半球形区域,地下部分不显示。
在这里插入图片描述

二、实现原理
根据中心点及半径绘制半球形区域,将其挂接到地球节点。

三、参考代码

void GlobeWidget::drawSphericalRegion(osg::Vec3d point,double radius)
{// 使用 osgEarth 转换经纬度到地球坐标osgEarth::GeoPoint geoPoint(osgEarth::SpatialReference::get("wgs84"),point.x(), point.y(), 0.0, osgEarth::ALTMODE_ABSOLUTE);osg::Vec3d worldPoint;geoPoint.toWorld(worldPoint);  // 转换为地球坐标系// 创建一个球体osg::ref_ptr<osg::Sphere> sphere = new osg::Sphere(worldPoint, radius);osg::ref_ptr<osg::ShapeDrawable> shape = new osg::ShapeDrawable(sphere);// 设置材质颜色shape->setColor(osg::Vec4(1.0f, 0.0f, 0.0f, 0.5f)); // 红色,半透明osg::ref_ptr<osg::Geode> geode = new osg::Geode();geode->addDrawable(shape);// 启用透明混合geode->getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON);geode->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);// 添加到根节点m_userDrawGroup->addChild(geode);
}

相关文章:

  • 数据库10(代码相关语句)
  • 如何通过原型链实现方法的“重写”(Override)?
  • Android三种onClick实现方式详细对比
  • 【AI News | 20250416】每日AI进展
  • 知识图谱与其它知识库的关系
  • 决策树:ID3,C4.5,CART树总结
  • 利用XShell 创建隧道(tunnel)在本地可视化远程服务器上的Visdom
  • stateflow中的函数
  • Xenomai 如何实现 <10μs 级抖动控制
  • 远程登录到Linux服务器(介绍,Xshell,Xftp,可能出现的问题)
  • 自由学习记录(55)
  • 强化学习的数学原理(一)基本概念
  • Redis --- 基本数据类型
  • Spark-SQL(三)
  • 方案解读:虚拟电厂总体规划建设方案【附全文阅读】
  • 从零开始学习PX4源码20(遥控器模式切换如何执行)
  • 进程控制(上)【Linux操作系统】
  • 【leetcode100】整数拆分
  • 带宽”(bandwidth)有以下两种不同的意义
  • 41.[前端开发-JavaScript高级]Day06-原型关系图-ES6类的使用-ES6转ES5
  • 河北辛集住房和城乡建设厅网站/电商运营培训正规平台
  • 网站开发设计图片/免费有效的推广网站
  • 北京建设项目管理有限公司网站/搜索引擎的四个组成部分及作用
  • 阿里云做网站需要环境/持啊传媒企业推广
  • wordpress日期时间/seo好找工作吗
  • 自己怎么做网站/百度推广账户登录