在opengl里如何实现物体的拖拽 100

我已经实现了拾取,现在我想让我拾取的物体通过鼠标拖拽在Z=0的平面上移动,请教这个要如何实现... 我已经实现了拾取,现在我想让我拾取的物体通过鼠标拖拽在Z=0的平面上移动,请教这个要如何实现 展开
 我来答
章氏SaiKouDa
2013-11-21 · TA获得超过212个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:210万
展开全部
如果能拾取就能拖拽。拖拽说白了就是不停地根据鼠标改变数据的信息。
是没有鼠标事件么。
追问
拾取实现了,现在是想在多个模型在一个平面上拖拽,场景视角可变,不知道怎么获取到鼠标在这个空间平面上的坐标。
追答

如果想完美的映射到平面上的距离的话,设摄像机坐标为A,对象拾取点为B,鼠标屏幕点为C_x,C_y(就两个量)。在Cx Cy可各到一个三角形,坐标可得到。


另有个简单方法,在这个平面上弄些参照点,也就是单点对象。z坐标等于移动对象的平均值,一块儿画出来,移动对象时测量鼠标在这些点上的相对位置。


送个程序,里面就有单点坐标的箭头可以点。没有拖拽功能。但成像原理是一样的,即

眼睛(摄像机)跟内部坐标的夹角就是投影距离(屏幕距离)。挺好玩的。

你不会是想复制3dmax吧。。。我这个只是基于绘图功能的手打3d系统,实现了3d原理。

你的opengl要是做成了的话希望能给我也来一份。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式