我正在尝试学习如何为点设置动画以及如何逐帧更新其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的计算方式。请帮忙!谢谢