在osgEarth上画同心圆

本文介绍了在osgEarth上绘制同心圆的流程。首先声明几何体并设置顶点数组,接着利用LineString组织形式创建特征,并逐步将其添加到场景根节点。同时提到了样式表的创建,以实现同心圆在场景中的渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.绘制流程
首先申明一个几何体,这个几何体需要加入顶点数组,也就是组成这个几何体的点的集合,然后确定点的组织形式,然后申明feature、featureNode,一步步包含然后将featureNode加入到场景根节点中
这里选择的是线状要素组织,共有三种组织形式,分别是PointSet、LineString和Ring,这三个都公有继承于Geometry类
PS(以下来自百度): 在公有派生的情况下,派生类的指针可以直接赋值给基类指针。但即便基类指针指向的是一个派生类的对象,也不能通过基类指针访问基类没有而派生类中有的成员。
基类的指针不能赋值给派生类的指针。但是通过强制类型转换,也可以将基类指针强制转换成派生类指针后再赋值给派生类指针。只是在这种情况下,程序员需要保证被转换的基类指针本来就指向一个派生类的对象,这样才是安全的,否则很容易出错。

二.样式表创建部分

//申明样式
osgEarth::Style style;
//海拔符号设置,即贴地设置
style.getOrCreate<osgEarth::Symbology::AltitudeSymbol>()->clamping()
 = osgEarth::Symbology::AltitudeSymbol::CLAMP_ABSOLUTE;
style.getOrCreate<osgEarth::Symbology::AltitudeSymbol>()->technique()
 = osgEarth::Symbology::AltitudeSymbol::TECHNIQUE_DRAPE;
//线段单元设置(不懂有啥用)
style.getOrCreate<osgEarth::Symbology::LineSymbol>()->stroke()->widthU
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值