Вычислить изменения в положениях x и y движущихся точек - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь научиться анимировать точки и обновлять их координаты x и y от кадра к кадру.Я нашел учебное пособие онлайн, и я действительно борюсь с формулами, которые используются в dx и dy:

dots.speed = 3;                 %degrees/second
dots.duration = 5;              %seconds
dots.direction_deg = 30;        %degrees (clockwise from straight up)
dots.direction_rad = dots.direction_deg * pi /180 %direction converted to radians

% Calculate the distance travelled by a dot (in degrees), which is the speed (degrees/second) divided by the frame rate (frames/second).

dx = dots.speed*sin(dots.direction_rad)/display.frameRate;
dy = -dots.speed*cos(dots.direction_rad)/display.frameRate;

Обладая своими знаниями в тригонометрии, я получаю следующие формулы для dx и dy:

Cos (угол) = Соседний / Гипотенуза -> cos (dots.direction_rad) = 1 / dx (1 - расстояние от начала координат до точки на окружности, равное 1 радиану).-> dx = 1 / cos (dots.direction_rad) -> тогда расстояние равно:

dots.speed*1/cos(dots.direction_rad)*display.frameRate

Sin (угол) = противоположность / гипотенуза -> sin (dots.direction_rad) =dy / 1 -> тогда расстояние равно:

dots.speed * sin(dots.direction_rad) / display.frameRate.

Мои формулы не дают ожидаемого результата.Так что я делаю не так.Кажется, я не понимаю, как dx и dy были вычислены в учебнике.Пожалуйста помоги!спасибо

...