我在OpenGL视图中有一个立方体,当我在立方体之外触摸时,可以旋转它。现在我可以检测到我触摸到了立方体的哪一边,现在我正在尝试找出触摸移动到哪一边。因此,如果我触摸顶部,运动可以朝向立方体的左侧,右侧,正面或背面。执行此操作时,立方体的方向可以是任何方向。
所以在弄清楚之后,我会让它绕着正确的轴旋转。
我只需要一个如何实现这一点的想法。
编辑:这是我想要做的一个粗略的例子。抱歉,我不擅长解释。
绿色的东西是手指触摸红色的那一边。箭头显示手指移动的方向。由于它正在向蓝色侧( 2 )移动,因此它应该返回2。如果它向绿色侧(1)移动,它将返回1,依此类推。

发布于 2012-08-09 10:02:42
以下是一种方法:
当你向上滑动手指时,屏幕空间中会出现两个2D点: ptBegin和ptEnd。将它们转换为3D (您将需要做一个等效的gluUnproject来获得3D坐标),您将获得立方体坐标系中的3D坐标ptBegin3D和ptEnd3D。
计算向量D= ptEnd3D - ptBegin3D。
现在,如果你对立方面法线(0,0,1),(1,0,0)等做上面的点积,你将从值中知道你正在朝向哪个立方面法线。
https://stackoverflow.com/questions/11874904
复制相似问题