画一颗星 - 实际上参考的是什么是正弦和余弦?

时间:2013-03-30 02:12:35

标签: math

我已经获得了一个用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)。虽然参考点是什么?它是在计算每个“楔形”的三角形吗?我不知道有多少关于弧度,这就是我遇到麻烦的原因。

输出示例:
sample star

1 个答案:

答案 0 :(得分:3)

看起来您只是指定每个细分的终点。

通过unit circle了解正弦和余弦的好方法。这是来自维基百科的图片: enter image description here

为了解释这一点,该点可以位于圆上的不同位置。这可以用两种方式描述。第一个是 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()

enter image description here

我希望现在很清楚,这不是y=mx+b,而是关于线条。这里的线条是由绘图程序为您完成的,您只需提供段的端点。