2011-01-22 20 views
3

斜辺の長さとその角度がある場合、どうやって隣接しているのか反対のものを見つけることができますか?三角形に基づいた画面座標の取得

私はこれをJavaScriptで書いています。私はちょうど長さと角度が与えられた斜辺が終わる画面座標(x/y)を見つけようとしています。 さらに、デカルト座標をスクリーン座標に変換する方法を知る必要があります。

申し訳ありませんが、これはおそらくかなり疑わしい質問です。

alt text

したがって、このような何か:

function getLineEndCoords(originX, originY, hypotenuse, angle){ 
    // Probably something to do with tangents and cosines. 
    return [x,y] 
} 

また、誰もが原料のこの種のために何か良いJSライブラリを知っていれば、私は不明であることだ場合はここで

スケッチです(等尺図、表示関連の数学)が便利です。通常、1つの軸の長さを乗じた角度の正弦であることを記憶するのが容易であり、他方はであり

x = hypotenuse*sin(angle) + origionX 
y = hypotenuse*cos(angle) + origionY 

:従って

sin(A) = o/h 
cos(A) = a/h 

:SOHのCAHのTOAを使用

+0

originXとは何と定義されていますか?ベースは常にx軸に平行ですか? – marcog

答えて

3

あなたが行く:

function getLineEndCoords(originX, originY, hypotenuse, angle){ 
    return [originX+Math.cos(angle)*hypotenuse,originY-Math.sin(angle)*hypotenuse]; 
    } 

上記のコードは(自分のスケッチであったように)右のx軸に対する角度を持っています。例えば、角度0はクロック上では数字3となる。角度PI/2ラジアン(90度)は12時です。この関数は座標をスクリーン座標として返します。ここで、Yは降下するにつれて増加し、デカルト平面上では上になりません。

javascriptの三角関数は度ではなくラジアンのみを受け入れることに注意してください。角度引数はラジアンでなければなりません。度からラジアンに変換するコードは次のとおりです。

function deg2rad(deg){ 
    return deg*Math.PI/180; 
    } 
+0

ありがとうジョエル!私は今あなたができるほど懸命にあなたを投票しています。 –

4

角のコサインと長さの積。

EDIT:

申し訳ありませんが、私は、原点を追加含めるのを忘れていました。ここで

+0

Hannesh、これは0度をまっすぐに置くようです。これは、画面座標を考慮して計算中にデカルト座標を使用しているためです。 –

関連する問題