我已经获得了一个用C#编写的简单程序。一些数学已经提供,所以你不必自己解决。但是,我不喜欢只是在不理解它实际做的事情的情况下使用它。我的一切都很好。我只想了解它。
例如:
angle = (360.00 / 8) * PI / 180;
size = 150
x = 150;
y = 150;
然后:
x1 = x + size*cos(angle * 1);
y1 = y + size*sin(angle * 1);
我假设上面的公式是使用y = mx + c形式计算坐标,sin / cos等于梯度(m)。虽然参考点是什么?它是在计算每个“楔形”的三角形吗?我不知道有多少关于弧度,这就是我遇到麻烦的原因。
输出示例:
答案 0 :(得分:3)
看起来您只是指定每个细分的终点。
通过unit circle了解正弦和余弦的好方法。这是来自维基百科的图片:
为了解释这一点,该点可以位于圆上的不同位置。这可以用两种方式描述。第一个是 t 是角度,你还需要知道圆的半径是1,这里是单位圆的含义。这是谈论圆上一个点的位置的自然方式。但是,也可以用 x 和 y 来描述该点的位置。如果你这样做,你会发现 x = cos(t)和 y = sin(t)。这基本上是 sin 和 cos 的定义,所以没有太多需要理解的,只是如果 t 的位置是那么角度,那么 x 和 y 方面的位置是 cos(t)和 sin(t)
所以看起来你只是指定每个细分的终点。
如您所知, t 可以用度数或弧度表示。弧度是这里的自然值,因此最好用弧度来思考,而且,这些方程式必须以弧度表示方程式才能计算出来。在与人交谈时,学位是有用的,但在数学方面,最好用弧度来思考。弧度,btw,只是圆弧的圆周,所以围绕单位圆圈是 2pi 弧度,中间是 pi 弧度等。
如果圆不是单位半径,那么代替x = cos(t)和y = sin(t),你有x=R*cos(t)
和y=R*sin(t)
。如果圆圈不在原点居中,则您有x=x0+R*cos(t)
和y=y0+R*sin(t)
。
以下是Python中的一些代码:
from numpy import *
import matplotlib.pyplot as plt
n_segments = 8
angle_step = 2*pi/n_segments
for i in range(n_segments):
angle = angle_step*i
xa, ya = cos(angle), sin(angle) # convert the angles into the x,y representation
plt.plot(xa, ya, 'ob', markersize=15)
plt.plot((0, xa), (0, ya), 'g') # plot the line between the two endpoints
plt.show()
我希望现在很清楚,这不是y=mx+b
,而是关于线条。这里的线条是由绘图程序为您完成的,您只需提供段的端点。