Circle c1 = new Circle(20);
c1.relocate(200,200); //Set X and Y
我想要做的是让圆圈围绕一个看不见的旋转中心移动。怎么能实现呢?
感谢。
编辑:我的三角技能非常差。
答案 0 :(得分:2)
您可以使用极坐标在圆上使用方程:
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是每秒帧数的平均值。