一切看起来都那么简单明了,直到我必须真正对其进行编程。
我有什么
我上传了一张图片以更好地解释它。
-
我有一个圈子,我知道
- 它是半径
- 中心点坐标
- 每个按钮的初始坐标(红色圆圈)。
我希望能够在将灰色圆形图像旋转 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);
如果您随身携带按钮首字母,会更容易angles,然后修改角度以产生旋转。所以在伪代码中:
newAngle = Angle+rot;
xbutton = center.x+cos(newAngle)*radius;
ybutton = center.y+sin(newAngle)*radius;
如果您确实只有按钮的坐标,则可以使用以下函数将它们转换为角度atan2
,伪代码:
buttonAngle = atan2(button.y-center.y,button.x-center.x);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)