当前位置: 首页 > 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);
}

http://www.mrgr.cn/news/99032.html

相关文章:

  • 论文阅读:2024 ICLR Workshop. A STRONGREJECT for Empty Jailbreaks
  • 数据结构实验7.2:二叉树的基本运算
  • 测风塔布局算法详解:基于宏观分区与微观定量选址的双阶段优化方法
  • 计算机视觉cv2入门之车牌号码识别
  • MLLMs for TSAD ?
  • 2025年最新版 Git和Github的绑定方法,以及通过Git提交文件至Github的具体流程(详细版)
  • Kubernetes控制平面组件:API Server详解(二)
  • MYSQL初阶(暂为自用草稿)
  • Kubernetes相关的名词解释kube-proxy插件(3)
  • 少儿编程路线规划
  • 【大模型】 LangChain框架 -LangChain实现问答系统
  • 实现窗口函数
  • 数据结构实验6.2:稀疏矩阵的基本运算
  • linux下C++性能调优常用的工具
  • [Swift]Xcode模拟器无法请求http接口问题
  • linux oracle 19c 静默安装
  • Linux 下的软件仓库(附加详细实验案例)
  • tigase源码学习杂记-AbstractMessageReceiver
  • 健身会员管理系统(ssh+jsp+mysql8.x)含运行文档
  • Windows上安装FFmpeg的详细指南