Расчет скорости для точек, вращающихся вокруг оси - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь заставить объекты вращаться вокруг начала координат.

Это в 3D, поэтому Y - ось вверх.Они вращаются вокруг начала плоскости (X, Z) * ​​1003 *

Объекты могут находиться в любом месте круга вокруг начала координат.Чтобы получить их вектор скорости, я определяю угол между началом координат и объектом и добавляю 90 градусов к углу (чтобы все точки были направлены под прямым углом к ​​началу координат).

Вот мой текущий код

radians:=ArcTan2(z,x);
//add 90 degrees to angle so point is heading at a 90 degree angle around the origin
radians:=radians+DegToRad(90);
//find new (x2,z2) point
x2:=x+cos(radians)*initialspeedscale;
z2:=z+sin(radians)*initialspeedscale;
//vectors from rotated position to object position
vx:=x2-x;
vz:=z2-z;

vx и vz затем используются в качестве начальной скорости объекта.

Вот как я думаю, код должен работать https://ibb.co/4TPtLtv

Проблема в том, что скорости не постоянны,Если я масштабирую скорости начальной установки между красным и синим, я получаю это изображение https://ibb.co/Xk56VY0 Это должно быть что-то с радианами в градусах или квадрантами arctan2, но я не могу заставить это работать.

Любойидеи о том, где я ошибся?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...