【问题标题】:Cannonjs move body forward according to its quaternionCannonjs 根据四元数向前移动身体
【发布时间】:2020-10-26 20:47:37
【问题描述】:

我在 Cannonjs 物理库中苦苦挣扎,我得到了一个四元数不断变化的球体,我只想让那个物体根据它的四元数向前移动。我发现了许多与此相关的主题,但建议的代码都不起作用。 是否有一种简单的方法可以完成这项简单的任务?

到目前为止,我尝试了here 给出的解决方案,但是使用 vmult() 方法根本不会改变 vector3...

body.quaternion = new CANNON.Quaternion(0,1,0,0);          // Whatever value you put here will not change the result of the vmult() operation below
var localVelocity = new CANNON.Vec3(0, 0, 1);
var worldVelocity = body.quaternion.vmult(localVelocity);  //-> worldVelocity = (0,0,1)
body.velocity.copy(worldVelocity);

【问题讨论】:

    标签: physics cannon.js


    【解决方案1】:

    尝试设置而不是复制body.velocity,这样:

    let directionVector = new CANNON.Vec3(0, 0, 1);
    directionVector.z -= moveDistance;
    directionVector = vehicleBody.quaternion.vmult( directionVector );
    vehicleBody.velocity.set( directionVector.x, directionVector.y, directionVector.z );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      相关资源
      最近更新 更多