在opengl里如何实现物体的拖拽 100
1个回答
展开全部
如果能拾取就能拖拽。拖拽说白了就是不停地根据鼠标改变数据的信息。
是没有鼠标事件么。
是没有鼠标事件么。
追问
拾取实现了,现在是想在多个模型在一个平面上拖拽,场景视角可变,不知道怎么获取到鼠标在这个空间平面上的坐标。
追答
如果想完美的映射到平面上的距离的话,设摄像机坐标为A,对象拾取点为B,鼠标屏幕点为C_x,C_y(就两个量)。在Cx Cy可各到一个三角形,坐标可得到。
另有个简单方法,在这个平面上弄些参照点,也就是单点对象。z坐标等于移动对象的平均值,一块儿画出来,移动对象时测量鼠标在这些点上的相对位置。
送个程序,里面就有单点坐标的箭头可以点。没有拖拽功能。但成像原理是一样的,即
眼睛(摄像机)跟内部坐标的夹角就是投影距离(屏幕距离)。挺好玩的。
你不会是想复制3dmax吧。。。我这个只是基于绘图功能的手打3d系统,实现了3d原理。
你的opengl要是做成了的话希望能给我也来一份。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询