如何在Android中查找圆圈上的x,y坐标

Sun*_*nny 1 android coordinates

我在android中绘制了一个圆圈,并希望以特定角度在其边缘绘制一些东西.我知道半径,我知道角度从水平(x轴)测量:

计算圆上各自x,y的常规数学公式是

x = x0 + r * cos(theta)
y = y0 + r * sin(theta)
Run Code Online (Sandbox Code Playgroud)

但问题是坐标系android从左上角的0,0开始,然后随着我们向下或向右增加.

那么在以一定角度计算圆的边缘上的x,y时,公式如何变化?还有其他方法可以在android的圆圈边缘找到x,y吗?

谢谢.

Sou*_*ion 5

在正常的笛卡尔坐标系中,θ从正x轴开始测量,并在逆时针方向旋转时增加.

但是,由于Y轴在用于android中画布的坐标系中是反转的,因此需要调整Y方程以适应:

perimiter_X_coord = center_X_coord + r*cos(theta)
perimiter_Y_coord = center_Y_coord - r*sin(theta)

另外,请记住,如果您正在使用Math.cos()Math.sin(),他们期望在Radians中的角度.因此,如果您有以度为单位的角度,则需要转换为:

angle_in_radians = angle_in_degrees * (Math.PI / 180)
Run Code Online (Sandbox Code Playgroud)