osg绘制点

本文档通过C++编程展示了如何利用osg库在三维空间中绘制点,分为代码实现和效果展示两个部分。
摘要由CSDN通过智能技术生成

一、代码

#include<map>
#include<vector>
#include<Windows.h>
#include <osgViewer\Viewer>
#include <osg\Node>
#include <osg\Geode>
#include <osg\Group>
#include <osg\PositionAttitudeTransform>
#include <osgDB\ReadFile>
#include <osgDB\WriteFile>
#include <osgUtil\Optimizer>
//键盘事件
#include<osgViewer/ViewerEventHandlers>
//osgGA相关的库
#include<osgGA/StateSetManipulator>
#include<osgEarthUtil/EarthManipulator>
#include<osg/LineWidth>
#include<osg/Point>


osg::ref_ptr<osg::Node> createPoint()
{
	osg::ref_ptr<osg::Geometry> geom = new osg::Geometry();//定义一个几何体
	//首先定义四个点
	osg::ref_ptr<osg::Vec3Array> v = new osg::Vec3Array();//定义一个几何体坐标集合
在 OpenSceneGraph 中,可以使用 `osg::Geometry` 类来绘制曲线。 以下是一个简单的示例代码,用于绘制一条二次贝塞尔曲线: ``` osg::ref_ptr<osg::Vec3Array> vertices = new osg::Vec3Array; vertices->push_back(osg::Vec3(0, 0, 0)); // 起 vertices->push_back(osg::Vec3(1, 2, 0)); // 控制 vertices->push_back(osg::Vec3(2, 0, 0)); // 终 osg::ref_ptr<osg::Geometry> geom = new osg::Geometry; geom->setVertexArray(vertices); osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array; colors->push_back(osg::Vec4(1.0, 1.0, 1.0, 1.0)); // 曲线颜色 geom->setColorArray(colors); geom->setColorBinding(osg::Geometry::BIND_OVERALL); osg::ref_ptr<osg::DrawArrays> drawArrays = new osg::DrawArrays(osg::PrimitiveSet::LINE_STRIP, 0, 100); geom->addPrimitiveSet(drawArrays); osg::ref_ptr<osg::Geode> geode = new osg::Geode; geode->addDrawable(geom); osgViewer::Viewer viewer; viewer.setSceneData(geode); viewer.realize(); viewer.run(); ``` 在这个示例中,我们首先创建了包含曲线顶的 `osg::Vec3Array` 对象,然后将其设置为几何体的顶数组。接着,我们创建了一个 `osg::Vec4Array` 对象来设置曲线的颜色,并将其绑定到几何体上。最后,我们创建了一个 `osg::DrawArrays` 对象来设置绘制方式,并将其添加到几何体的原语集合中。最后,我们将几何体添加到 `osg::Geode` 中,并将其设置为场景图的根节。 你可以根据需要修改这个示例代码来绘制不同类型的曲线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aspiretop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值