在Android上的Circle上查找点

在Android上的Circle上查找点

一切看起来都很简单,直到我必须对其进行实际编程为止。

我有什么

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

  • 我有一个圈子,我知道
  • 是半径
  • 中心点坐标
  • 每个按钮的初始坐标(红色圆圈)。

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

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

    如下菲利斯所说,有效的解决方案是:

    -首先要注意旋转角度,在每次重绘时,只需将其递增即可
       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);
    

    最佳答案

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

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

    关于android - 在Android上的Circle上查找点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5789232/

    10-12 02:12