我在android中绘制了一个圆圈,并希望以特定角度在其边缘绘制一些东西。 我知道半径,我知道角度从水平(x轴)测量:
计算圆上各自x,y的正常数学公式是
x = x0 + r * cos(theta)
y = y0 + r * sin(theta)
但问题是坐标系android从左上角的0,0开始,然后随着我们向下或向右增加。
那么在以一定角度计算圆的边缘上的x,y时,公式会如何变化? 还有其他方法可以在android的圆圈边缘找到x,y吗?
感谢。
答案 0 :(得分: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)
答案 1 :(得分:0)
你基本上需要画圆圈的切线吗? http://www.mathopenref.com/tangent.html