Невозможность бокового передвижения объекта

x - ширина
y - высота
z - длина
α - угол поворота объекта по оси X (плоскость zy)
β - угол поворота объекта по оси Y (плоскость zx)

Система координат локальная, т.е. центр координат соответствует центру объекта.

Направление объекта определяется как

(x: -sin(β)*cos(α), y: sin(α), z: -cos(β)*cos(α))

Применяя к направлению матрицу поворотов получается

(x: -(dx * cos(γ) + dz * sin(γ)), y: -dy * cos(γ), z: -(-dx * sin(γ) + dz * cos(γ)))

где dx, dy, dz - координаты направления объекта, γ - угол поворота.

Таким образом становится возможно движение объекта в стороны, отличные от его направления. Но при α=90° становится невозможным передвижение объекта под углом γ=90° и γ=270°.

Нужно модифицировать формулу

(x: -(dx * cos(γ) + dz * sin(γ)), y: -dy * cos(γ), z: -(-dx * sin(γ) + dz * cos(γ)))

так, чтобы при α=90°, β=0° и γ=90° x был равен 1, а z - 0, а при α=90°, β=90° и γ=90° z был равен 1, а x - 0


Ответы (0 шт):