【问题标题】:Android OpenGL touch direction on a cube立方体上的Android OpenGL触摸方向
【发布时间】:2012-08-08 23:51:16
【问题描述】:

我的 OpenGL 视图中有一个立方体,当我触摸立方体外部时可以旋转它。现在我可以检测到我触摸了立方体的哪一侧,现在我正试图找出触摸运动的哪一侧。因此,如果我触摸顶部,运动可以向立方体的左侧、右侧、正面或背面移动。执行此操作时,立方体的方向可以是任意值。

所以在弄清楚这一点后,我会让它围绕正确的轴旋转。

我只需要知道如何实现它。

编辑: 这是我正在尝试做的一个粗略的例子。对不起,我不善于解释。

绿色的东西是手指触摸红色的一面。箭头表示手指移动的方向。由于它向蓝色侧 (2) 移动,它应该返回 2。如果它向绿色侧 (1) 移动,它将返回 1,依此类推。

【问题讨论】:

    标签: android opengl-es touch


    【解决方案1】:

    这是一种方法:

    当您向上滑动并抬起手指时,您会在屏幕空间中获得两个 2D 点:ptBegin 和 ptEnd。将这些转换为 3D(您需要执行 gluUnproject 的等效操作来获得 3D 坐标),您将获得立方体坐标系中的 3D 坐标 ptBegin3D 和 ptEnd3D。

    计算向量 D = ptEnd3D - ptBegin3D。

    现在,如果您使用立方体面法线 (0, 0, 1)、(1, 0, 0) 等进行上述的点积,您将根据值知道您正朝着哪个立方体面移动.

    【讨论】:

    • 简单,直接... +1 不错
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多