我无法将像素坐标从鼠标转换为3D视锥体。我在OGL ES 1.1上使用类似于glProject()的代码。我尝试过使用glUnProject()但是我无法使矢量工作,我知道有一种更简单的方法可以做到这一点。 我希望能够比较3D和2D坐标并找出它,但我还没有成功。所以这就是我所知道的:
我正在使用正在挑选的多边形的3D顶点:
-1.0,1.0,0.0
然后我用glProject()转换为像素坐标:
140.0,259.0,0.0
然后我使用鼠标像素坐标:
140.0,220.0,0.0
这是我无法弄清楚的部分:
-1.0,-1.0,0.0
我从#4的坐标获得了#3坐标,但我想做的是将像素转换为3D的相反方向。
我真正需要知道的是鼠标在3D坐标中从另一个3D点拖动的距离。
答案 0 :(得分:0)
好的,我有一个近似的算法工作。我开始工作的方式是使用:
glFrustum(AX,BX,AY,通过,AZ,BZ);
我使用ax和az的比率乘以z的长度来找到三角形的tx和ty侧的长度。然后我用像素坐标找到x和y。我不确定gluUnProject()是否更好,但我使用的那个更小,更容易理解。