计算相对旋转

时间:2013-01-17 09:02:08

标签: javascript math

我正在研究一种简单的“停车类型”游戏,用户在车内驾驶并且必须将其停放在指定地点。

虽然它确实在工作,但唯一的问题是我需要找出汽车停放的方向。 我不希望用户随意停放汽车,但汽车应朝上或朝下。

我尝试使用此检查来查看汽车的旋转速度,但这看起来有点过于复杂

var relativeRot = this.rotation % 360;
if((this._speed <= 0.02 && this._speed >= -0.02) && ((relativeRot <= 5 && relativeRot >= 355) || (relativeRot >= 175 && relativeRot <= 185) || (relativeRot <= -175 && relativeRot >= -185) || (relativeRot <= -5 && relativeRot >= -355))) {

有没有更简单的方法来检查这个?应该有5度的小幅度,因为它不一定是完美的。

1 个答案:

答案 0 :(得分:1)

你可以通过取模90度来简化它:

var relativeRot = this.rotation % 360;
if (Math.abs(this._speed) <= 0.02) {
    var cornerRot = (relativeRot + 360) % 90; // should be positive
    if (Math.abs(cornerRot - 45) >= 40) {
        // consider car parked...
    }
}