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);

上記の式は、sin/cos が勾配 (m) に等しい形式 y = mx + c を使用して座標を計算していると仮定します。しかし、参照ポイントは何ですか?各「くさび」の外側の三角形を計算していますか?ラジアンについてはよくわからないので、困っています。

出力例:
サンプルスター

4

1 に答える 1

3

各セグメントの終点を指定しているだけのようです。

正弦と余弦を理解する良い方法は、単位円です。ウィキペディアからの写真は次のとおりです。 ここに画像の説明を入力

これを説明するために、点は円上の異なる位置にある可能性があります。これは 2 つの方法で説明できます。1 つ目は、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 に答える