【问题标题】:How to get a right rotation(x,y) by move vector(x,y)如何通过移动向量(x,y)获得正确的旋转(x,y)
【发布时间】:2017-05-13 04:04:15
【问题描述】:

我正在开发一个台球游戏,使用 box2d。

我知道球的移动向量(vtX,vtY),如何计算球移动时的旋转(x,y)。

球是 3D 球体,当球移动时我需要旋转来旋转球。

ps:就我而言,我无法使用 3d 物理引擎。

【问题讨论】:

    标签: math 3d cocos2d-x box2d


    【解决方案1】:

    您可以将生成的旋转表示为旋转轴和角度的组合。我强烈建议不要使用欧拉角,因为如果操作正确,这将导致非常复杂的表达式。

    如果您的球移动距离(dx, dy),则旋转轴为normalize(cross(up, (dy, dy))),其中up 为向上方向。假设这是z轴,你得到

    axis = normalize(-dy, dx, 0)
    

    角度是

    angle = length(dx, dy) / r,
    

    其中r 是球的半径,length(dx, dy) = sqrt(dx * dx + dy * dy)。角度将以弧度为单位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多