30

使用 C#:

如果我有中心坐标和半径,如何获得任何给定度数的圆边缘上的 (x, y) 坐标?

可能涉及 SIN、TAN、COSIN 和其他十年级数学...... :)

4

3 回答 3

83

这是可以应用于任何语言的数学解决方案:

x = x0 + r * cos(theta)
y = y0 + r * sin(theta)

x0y0是中心的坐标,r是半径,theta是弧度。该角度是从 x 轴逆时针方向测量的。

如果您的角度以度为单位,则这是 C# 的代码:

double x = x0 + r * Math.Cos(theta * Math.PI / 180);
double y = y0 + r * Math.Sin(theta * Math.PI / 180);
于 2010-01-19T12:30:23.463 回答
9

使用毕达哥拉斯定理(其中 x1,y1 是边缘点):

x1 = x + r cos(theta)
y1 = y + r
sin(theta)

在 C# 中,这看起来像:

x1 = x + radius * Math.Cos(angle * (Math.PI / 180));
y1 = y + radius * Math.Sin(angle * (Math.PI / 180));

其中所有变量都是doubles并且angle是度数

于 2010-01-19T12:35:04.557 回答
4

对于以弧度为单位的 origin (j, k)、 radiusr和 angle的圆:t

   x(t) = r * cos(t) + j       
   y(t) = r * sin(t) + k
于 2010-01-19T12:30:28.673 回答