1

我得到了一个用 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)。但是参考点是什么?它是否计算每个“楔形”外侧的三角形?我对弧度知之甚少,这就是我遇到麻烦的原因。

输出示例:
样品星

4

1 回答 1

3

看起来您只是在指定每个段的端点。

理解正弦和余弦的一个好方法是通过单位圆。这是一张来自维基百科的图片: 在此处输入图像描述

为了解释这一点,该点可以在圆上的不同位置。这可以用两种方式来描述。首先是t是角度,还需要知道圆的半径为1,这里就是单位圆的意思。这是谈论圆上一个点的位置的自然方式。不过,也可以用xy来描述点的位置。如果你这样做,你会发现x=cos(t)y=sin(t)。这基本上是sincos的定义,所以没有太多要理解的,只是如果位置在t方面然后是角度,那么根据xy的位置是cos(t)sin(t)

所以看起来你只是在指定每个段的端点。

如您所知,t可以用度数或弧度表示。弧度是这里的自然值,所以最好用弧度来考虑,而 t,这些方程必须以弧度为单位才能计算出方程。在与人交谈时,度数很有用,但在数学中,最好用弧度来思考。弧度,顺便说一句,只是圆弧的圆周,所以单位圆的一路是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关于线条的。这里的线条是由绘图程序为您完成的,您只需提供线段的端点。

于 2013-03-30T02:35:13.847 回答