Circle c1 = new Circle(20);
c1.relocate(200,200); //Set X and Y
我想做的是让圆围绕一个看不见的旋转中心做圆周运动。如何才能实现这一目标?
谢谢。
编辑:我的三角学技能非常差。
最佳答案
您可以使用极坐标对圆上的点使用方程:
circle_x = rot_center_x + radius * cos(angle)
circle_y = rot_center_y + radius * sin(angle)
使用它,您将获得新圆圈的中心点。然后你只需要增加(逆时针)或减少(顺时针)你的角度,空白屏幕并再次绘制圆圈。
三角函数的角度以弧度为单位,整圆有 2*pi 弧度。因此,如果您想要角度为零度,请输入 0
。对于 90 度,输入 pi/2.0
。
对于任何其他角度,请使用以下转换公式:
angle_rad = pi/180.0 * angle_degrees
如果你想为旋转计时,你必须选择旋转角速度 omega。
omega = 2*pi*f
其中 f 是旋转频率,例如 f=1Hz 表示您的物体将在一秒后旋转一整圈。欧米茄以每秒弧度为单位,因此如果您有欧米茄 10 弧度,那么您的物体将在一秒内旋转 10 弧度,或在 10 秒内旋转 100 弧度。
现在您必须确定添加每个动画帧需要多少角度:
ang_inc = omega / fps_avg;
ang += ang_inc;
其中 fps_avg 是每秒测量的平均帧数。
关于java - 如何让一个圆圈不停地移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629128/