2016-12-01 13 views
0

現在、java.awt.GraphicsdrawLine()またはdrawPolygon()のいずれかの方法を使用して、JFrameの中心に非右辺の三角形を描画する必要があるプロジェクトに取り組んでいます。これらの方法は両方とも、すべての点の座標を機能させる必要があります。私の問題はポイントの代わりに、私が持っているのはすべて、三角形のすべての角度と辺の長さです。非右三角形の角度のJava計算点

enter image description here

(EDITこのSenarioにおけるCの位置はaとb betwen固定されておらず、軸の下のどこかかもしれ:私はあなたが私の問題を視覚化するのに役立ちます私は願っての気の利いた図を策定しましたあなたが私の写真から見ることができるように、私はAのコーダンを基にしたCのコーダントを必要とします、これを計算する方法はありますか?三角形?

ボーナス:JFrameの中央に効果的に三角形を中央に配置するAの(x、y)値をどのように見つけることができますか?

+1

三角法を使用します。そのほとんど問題はありません。あなたがそれを勉強していないなら、本当に本当に2次元の描画のために必要です。 –

+0

「A」の座標が与えられると、「C」の座標は、長さ「b」と「A」の角度によって完全に決定され、単純な線方程式である。それが三角形の一部であるという事実は、あなたが中心を決定しようとするまでは関連していません。座標 '0,0'ですべての計算を開始し、次に結果を変換します。三角形の中心:http://www.dummies.com/education/math/trigonometry/how-to-pinpoint-the-center-of-a-triangle/ –

+0

私は本当に誰かがちょうど答えの代わりに答えを掲示することを望む答えが三角法であるとコメントしています... –

答えて

1

あなたは角CABを知っている場合は、点Cの座標は次のようになります。Javaでは

(x+b·sin(θ), y-b·cos(θ)) 

、そこにある:

double Math.sin(double radians); 
double Math.cos(double radians); 

は、角度はラジアンであることが必要であることに留意してください。角度が度の場合は、次のように試してみてください。

double Math.sin(Math.toRadians(double degrees)); 
double Math.cos(Math.toRadians(double degrees)); 

希望します。

+0

ありがとう!あなたの評判が十分に高くなると、Thetaが両方の状況にあることを表す写真を使ってあなたの答えを改訂することをお勧めします。 –