查看: 1220|回复: 5

如何在给定坐标绘制一个点,求代码

[复制链接]

该用户从未签到

发表于 2014-5-15 13:50:17 | 显示全部楼层 |阅读模式
大家好    线、面都可以绘制 ,如何在给定坐标绘制一个点,求代码

该用户从未签到

发表于 2014-5-15 15:56:49 | 显示全部楼层
  1.         osg::ref_ptr<osg::Geode>geode=new osg::Geode;
  2.         osg::ref_ptr<osg::Geometry>geometry=new osg::Geometry;
  3.         _vertexArr->push_back(osg::Vec3(0.0f,0.0f,.0f));
  4.         _vertexArr->push_back(osg::Vec3(2.0f,0.0f,.0f));
  5.         _vertexArr->push_back(osg::Vec3(2.0f,0.0f,2.0f));
  6.         _vertexArr->push_back(osg::Vec3(0.0f,0.0f,2.0f));
  7.         geometry->setVertexArray(_vertexArr);
  8.         geometry->addPrimitiveSet(new osg::DrawArrays(GL_POINTS,0,_vertexArr->size()));
  9.         geometry->setSupportsDisplayList(false);
  10.         geometry->dirtyDisplayList();
  11.         //no use at this moment;
  12.         //geometry->setUpdateCallback(new GeometryUpdate);

  13.         geode->addDrawable(geometry.get());
  14.         geode->getOrCreateStateSet()->setMode(GL_LIGHTING,osg::StateAttribute::OFF);
  15.         osg::ref_ptr<osg::Point> pointSize=new osg::Point;
  16.         pointSize->setSize(5.0);
  17.         geode->getOrCreateStateSet()->setAttributeAndModes(pointSize.get(),
  18.                 osg::StateAttribute::ON);
  19.         //set dispaly mode as line mode
  20.         /*osg::ref_ptr<osg::PolygonMode> polygonMode = new osg::PolygonMode();
  21.         polygonMode->setMode( osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::LINE);
  22.         geode->getOrCreateStateSet()->setAttribute( polygonMode.get(),
  23.                 osg::StateAttribute::OVERRIDE | osg::StateAttribute::ON );*/

  24.         return geode;
复制代码

有的代码对你没用,但是这是可以画点的。

该用户从未签到

 楼主| 发表于 2014-5-16 08:21:55 | 显示全部楼层
非常 感谢 JacaYang  

该用户从未签到

发表于 2014-7-31 19:18:41 来自手机 | 显示全部楼层
单个点默认包围盒半径为零,需要为这个单点设置个不为零的包围盒

该用户从未签到

发表于 2016-3-17 16:09:28 | 显示全部楼层
@JacaYang,这篇代码对于绘制四个点(多个,也就是设置的顶点数组中的元素多个)时,可以很好的绘制,但我现在遇到一个问题是绘制一个点(设置的顶点数组中的元素为一个Vec3时),这种方法竟然绘制不出来,请问您知道是什么原因吗?

该用户从未签到

发表于 2016-3-17 17:38:06 | 显示全部楼层
jackwong 发表于 2016-3-17 16:09
@JacaYang,这篇代码对于绘制四个点(多个,也就是设置的顶点数组中的元素多个)时,可以很好的绘制,但我 ...

绘制点的时候只要设置不被剔除就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表