查看: 2160|回复: 15

请问谁知道OSG内部有没有封装如下图这样的缩放条

[复制链接]

该用户从未签到

发表于 2012-10-10 14:29:28 | 显示全部楼层 |阅读模式
OSG内部有没有封装类似用于电子地图的放大缩小的那个条????????????????
0000.jpg

该用户从未签到

发表于 2012-10-10 23:58:30 | 显示全部楼层
可以用 osgWidget 实现,也可以用一些第三方UI库实现

该用户从未签到

发表于 2012-10-10 14:47:42 | 显示全部楼层
没有,那图片自己搞吧,从写EH

该用户从未签到

发表于 2012-10-10 23:57:15 | 显示全部楼层
liuzhiyu123 发表于 2012-10-10 14:47
没有,那图片自己搞吧,从写EH

EH 指的是什么?

该用户从未签到

发表于 2012-10-11 00:40:55 | 显示全部楼层
没有类似的封装,可以用osgWidgets来控制视点位置进行缩放

该用户从未签到

 楼主| 发表于 2012-10-11 11:31:16 | 显示全部楼层
liuzhiyu123 发表于 2012-10-10 14:47
没有,那图片自己搞吧,从写EH

我之前的想法和你差不多,但是我不是用图片,我是画出来的,我画出来之后把他们放在HUD下,但是我发现这样做EH并不能检测出HUD下节点的交线来,所以我无法识别点击的是什么东西。

该用户从未签到

发表于 2012-10-11 13:39:49 | 显示全部楼层
本帖最后由 liuzhiyu123 于 2012-10-15 10:36 编辑

看了一下SRC HUD的可以进行pick 可能您的设置有些问题

该用户从未签到

 楼主| 发表于 2012-10-15 10:15:34 | 显示全部楼层
liuzhiyu123 发表于 2012-10-11 13:39
使用HUD的camera进行pick,使用场景的当然不对

使用HUD的camera进行pick,这个怎么做不太清楚,请指点一下?OSG的例子当中有这样的吗?

该用户从未签到

发表于 2012-10-15 10:38:17 | 显示全部楼层
应该是可以的

该用户从未签到

发表于 2012-10-15 10:55:45 | 显示全部楼层
精细的肯定不会有的

该用户从未签到

发表于 2012-10-15 10:56:20 | 显示全部楼层
这个是图形,按钮2个内容,....

该用户从未签到

发表于 2012-10-15 10:56:44 | 显示全部楼层
自己做就可以了,简单

该用户从未签到

 楼主| 发表于 2012-10-15 13:36:28 | 显示全部楼层
liuzhiyu123 发表于 2012-10-11 13:39
看了一下SRC HUD的可以进行pick 可能您的设置有些问题

我尝试了用Camera 的HUD可以进心pick了,但是不知道为什么用Project的HUD不能够检测到,请指教一下

该用户从未签到

发表于 2012-10-15 14:45:10 | 显示全部楼层
shininglwb 发表于 2012-10-15 13:36
我尝试了用Camera 的HUD可以进心pick了,但是不知道为什么用Project的HUD不能够检测到,请指教一下

Project的HUD ??

该用户从未签到

 楼主| 发表于 2012-10-15 14:51:32 | 显示全部楼层
liuzhiyu123 发表于 2012-10-15 14:45
Project的HUD ??

osg::MatrixTransform * modelview = new osg::MatrixTransform;
modelview->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
modelview->setMatrix(matrix);

//previous method, can not pick
osg:rojection * projection = new osg::Projection;
projection->setMatrix(osg::Matrix:rtho2D(0,1280,0,1024)); // or whatever the OSG window res is
projection->addChild(modelview);

//Current method, can pick
osg::Camera* camera= new osg::Camera;
camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
camera->setProjectionMatrixAsOrtho2D(0,1280,0,1024);
camera->setViewMatrix(osg::Matrix::identity());
camera->setRenderOrder(osg::Camera::POST_RENDER);
camera->setClearMask(GL_DEPTH_BUFFER_BIT);
camera->addChild(modelview);


该用户从未签到

发表于 2012-10-15 16:11:15 | 显示全部楼层
您的LineSegmentIntersction 设置的Coord 是什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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