我要发帖 回复

正式会员

19

主题

71

积分

0

专家分

:

私信
发表时间 : 2008-12-18 11:07:58 | 浏览 : 1216    评论 : 3
vega中怎样实现屏幕坐标转化为世界坐标?vega的picker类可以实现鼠标点击返回这一点的世界坐标,屏幕坐标是由鼠标隐式传给vega来进行转化的,但是现在由自己定义的屏幕坐标该怎么转化为世界坐标呢?现在有两条思路,发现都走不通:

     1尝试自己改写鼠标的屏幕坐标,但是发现根本不起作用
     vgGetPos( mainObs, pos );
     vgPickerDoTransform ( picker, pos ,200, 200 );
     //mouse.mx=mouse.my=0.5;
    if( vgPerformPickProcessing( picker, pos) )
    vgGetPickerIntersection(picker,&range,&x,&y,&z);
     2 vega自带的一个函数screentoworld好像只能转出来两个参数是正确的,还有一个世界坐标z值又不能正确得到。
         vega prime中论坛上有很多屏幕坐标转化为世界坐标的例子,但是在vega中又该怎么实现呢?请版主或者哪位高手帮帮忙啊,谢谢了!

最近VR访客

relax 评论于2008-12-18 12:03:52
刚才查到了一个解决办法,用P0 ( x0,y0 ) 求得一个三维虚拟场景中的对应点P1
(x1,y1,MaxHeight)。取MaxHeight 为大于三维虚拟场景中所有目标的最
大Z 值,以P1(x1,y1,MaxHeight)为起始端点垂直向下构造一条射线与三维
虚拟场景中的目标进行碰撞检测(求交运算),于是求得了所要的z值,问题解决了。
    不知道还有没有更加简单或者精确度更高的办法,欢迎探讨!
huxiaobo 评论于2010-3-25 20:12:02
是不是可以用鼠标控制所选中物件移动啊
zhy2007 评论于2010-5-5 09:32:26
如果是透视投影怎么获取正确的(x,y)?用screentoworld好像只能得到近裁截面的坐标值?

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-25 03:36 PM

返回顶部