查看: 776|回复: 2

高亮选中圆环的问题

[复制链接]

该用户从未签到

发表于 2014-3-24 14:28:04 | 显示全部楼层 |阅读模式
我开始画的是一个圆盘(使用POLYGON属性),这时我可以正确的利用相交来高亮对象, 当我画的是圆环(使用LINE_LOOP属性)时,没有高亮效果。

我想实现的效果时: 画一个圆环,然后高亮这个圆环,然后在圆环上显示4个可操作的点(十字相交的4个点),然后选中这4个点之一 拖动鼠标,圆环随鼠标拖动实时的绘制

我目前有几点疑惑:
1. 圆环选中的这个地方是不是要用到 包围盒相交? 我看了教材,对包围盒都没有介绍,求教...
2. 拖动圆环绘制时 是不是要 自定义 manipulator 来禁止旋转?

该用户从未签到

发表于 2014-3-31 15:38:36 | 显示全部楼层
POLYGON永远都不是一个值得推荐的图元类型,您应该用TRIANGLE_FAN替代或者手动将它三角化
这之后求交操作才是正确的;至于拖动绘制时,显然您应该考虑让cameramanipulator失效,自定义是可以的

该用户从未签到

发表于 2014-4-12 14:40:59 | 显示全部楼层
做点选操作,一般都是写一个osgGA::GUIEventHandler的派生类,它会先于CameraManipulator响应新消息。你只要在你的EventHandler返回true,那么接下来CameraManipulator将不会处理消息,视图不会动的。

记住,程序设计时,要考虑一个模块只做一个模块的事情,比如点选就应该写个点选的类,而漫游就应该写个漫游的类,不要想着一个类干两件事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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