首页 文章

在Android上的Circle上找到点

提问于
浏览
6

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

What I've got

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

  • 我有一个圆圈而且我知道

  • 它的半径

  • 中心点坐标

  • 每个按钮的初始坐标(红色圆圈) .

当我旋转灰色圆圈图像时,我希望能够用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 回答

  • 1

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

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

    x1 = x r sin 10

    y1 = y r cos 10

    x2 = x - r sin 10

    y2 = y - r cos 10

相关问题