【发布时间】:2014-12-07 19:29:03
【问题描述】:
我的 3d 空间中有一架飞机,我想将它移动到其他地方,所以我使用 glTranslate 来做到这一点。
平面顶点数据为:(0,0,0), (1,0,0), (1,1,0) 和 (0,1,0)。 我通过使用 glTranslatef(2.0, 0.0, 0.0) 将对象平移到 (2,0,0) 的位置。
平移后点数据不变,所以如果我想与我的飞机发生碰撞,视觉位置不是它的实际位置。
有没有办法从 MODELVIEW_MATRIX 中获取点数据,或者至少有办法找出 glTranslate 之后的新值是什么?
不要只将 2.0 添加到实际值来移动它,因为如果我想使用 glRotate 等怎么办。我仍然想要点位置。
【问题讨论】:
-
您应该将 2.0 添加到实际值。要旋转对象,请使用
glTranslate将原点移至对象,然后再次使用glTranslate将其移回。
标签: c++ opengl matrix vector translation