在Android上的Circle上找到点

时间:2011-04-26 10:51:48

标签: android graphics geometry point

在我不得不对它进行编程之前,一切看起来都很简单明了。

我得到了什么

我上传了一张图片来更好地解释它。

  • 我有一个圈子,我知道

    • 它的半径
    • 中心点坐标
    • 每个按钮的初始坐标(红色圆圈)。

我希望能够在旋转灰色圆圈图像时,用10度计算红色按钮的新坐标(x1y1,x2y2)。

对于懂数学的人来说,这应该不难实现,但我找不到合适的解决方案。我也在这里搜索过,找不到合适的解决方案。任何帮助是极大的赞赏。 谢谢

enter image description here

正如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);

2 个答案:

答案 0 :(得分:5)

如果您按住初始角度按钮,则更容易,然后修改角度以产生旋转。所以在伪代码中:

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);

答案 1 :(得分:1)

x1 = x + r sin 10

y1 = y + r cos 10

x2 = x - r sin 10

y2 = y - r cos 10