なぜコサインはx値を計算し、アークのy値をサインするために使用されるのですか?

StackOverflow https://stackoverflow.com/questions/3488569

質問

私はこのraphael.jsデモの数学を理解しようとしています:

http://raphaeljs.com/pie.js

セクターの方法をチェックアウトします:

function sector(cx, cy, r, startAngle, endAngle, params) {
    var x1 = cx + r * Math.cos(-startAngle * rad),
        x2 = cx + r * Math.cos(-endAngle * rad),
        y1 = cy + r * Math.sin(-startAngle * rad),
        y2 = cy + r * Math.sin(-endAngle * rad);
    return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}

これが実際のデモです:http://raphaeljs.com/pie.html

私の数学は少し錆びており、セクターの機能を理解しようとしています - startangle and endangleパラメーター(0〜360の各開始点と360の端線値が弧を描く)を考えると、なぜこの関数は機能しますか?

役に立ちましたか?

解決

それはすべてあなたがどのように扱うかに依存します startAngleendAngle. 。これは、水平から右への開始(すなわち0の角度が東を指している)として扱っているように扱っているように見えます。

通常、数学では、水平から右へと始まる角度を考慮しますが、反時計回りに増加します...しかし、角度を描くように非数学者に依頼すると、時計回りに垂直方向に(つまり北)増加する(すなわち、北)からうまく処理できます。これは混合物を取っているように見えます:)ここには本当に「間違った」または「正しい」答えはありません - それはすべて定義の問題です。

写真が人気があるので、ここに私が説明した3つのシステムがあります。それぞれが長さであると仮定しています r:

通常の数学:X軸からの反時計回り

First diagram
(ソース: arachsys.com)

路上で男に角度を描くように頼む(Y軸から時計回り)

Second diagram

このコードで使用される角度(x軸から時計回り)

Third diagram

他のヒント

実際に罪とcosを見てください 平均 円で:alt text

角度アルファを形成する円の上にポイントがある場合、cosアルファはsinアルファがy部分である点のx部分です。

この図は、なぜ角度が無効になるのかを説明しています。alt text

つまり、指定できることを意味します 時計回り アナログ時計を持っているほとんどの人が好む角度。

センター(CX、CY)および半径Rとの円周に関する任意のポイントには、次の座標があります(COSおよびSINの幾何学的定義から直接続きます - 対応するカテトゥスとヒポテニュースの長さの比率):

x = cx + R*cos(a)
y = cy + R*sin(a) for  0 <= a < 2π

したがって、角度Aに制限を設定すると、任意のアークを定義できます。

xが増加すると水平に0°を取ると、yが増加すると垂直として90°を増やした場合、次のようになります。

cos(0) = 1
sin(0) = 0

cos(90) = 0
sin(90) = 1

X値をCosineで掛けることでX値を変化させ、Y値をサインで掛けることでY値を変化させることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top