Ali*_*lin 7 graphics geometry android point
在我不得不对它进行编程之前,一切看起来都那么简单明了.
我得到了什么
我上传了一张图片来更好地解释它.
我有一个圆圈,我知道
当我旋转灰色圆圈图像时,我希望能够用10度计算红色按钮的新坐标(x1y1,x2y2).
对于那些懂数学的人来说,这应该不难实现,但我找不到合适的解决方案.我也在这里搜索过,找不到合适的解决方案.任何帮助是极大的赞赏.谢谢
正如Felice所述,工作解决方案是:
- 首先注意旋转角度,每次重绘只需增加它
angle = angle+mainRotationAngle;
float x = (float) (center.X + Math.cos(angle*Math.PI / 180F) * radius
float y = (float) (center.Y + Math.sin(angle*Math.PI / 180F) * radius
button.setX(x);
button.setY(y);
Run Code Online (Sandbox Code Playgroud)
如果您按住按钮初始角度,然后修改角度以产生旋转,则更容易.所以在伪代码中:
newAngle = Angle+rot;
xbutton = center.x+cos(newAngle)*radius;
ybutton = center.y+sin(newAngle)*radius;
Run Code Online (Sandbox Code Playgroud)
如果你真的只有按钮的坐标,你可以使用atan2
伪代码中的函数将它们转换为角度:
buttonAngle = atan2(button.y-center.y,button.x-center.x);
Run Code Online (Sandbox Code Playgroud)