2017-04-25 1 views
1

ここにJavaの学生Line2DとRectangle2Dをグラフィックスを生成せずに使用できますか?

私は物理的な加速度計/ジャイロを動かすと、私は2次元座標系に位置付けている矩形と交差するとTRUEを返すメソッドを移動する行を作成しようとしています。

明らかにLine2DとRectangle2Dは私が見つけたグラフィカルなクラスですが、JFrameに設定され、ペイントされていない限り動作しません。だから私は、これに適した他のクラスがあるのだろうかと思っていました。あるいは、線分の方程式と四角形の四辺を手動で計算し、交差点をチェックする必要がありますか?

アイデア?

+0

線が矩形と交差するかどうかを調べるには、線の端点の少なくとも1つが矩形の内側にあるかどうかを調べる方が簡単です。関連する線方程式はありません。 :-) –

+1

@Aron_dc矩形の外側に両方の端点を持つ線分は、まだそれを交差させることができます。私はそれが単純なテスト以上のものを必要とするのではないかと心配しています。 –

+0

@G_H Oh dang、あなたは正しいです。数年前に私のコンピュータグラフィックスのクラスでさえカバーされました。 –

答えて

2

クラスは形状情報をカプセル化します。レンダリングなしで、そして「ヘッドレス」(レンダリングハードウェアなし)の環境でも、それらを完全に細かく使用することができます。

Line2D line = new Line2D.Double(1, 5, 4, 0); 
Rectangle2D rect = new Rectangle2D.Double(1, 1, 2, 2); 
System.out.println(line.intersects(rect)); 

これは "真" を出力します。

+0

ありがとう!私はこれを実行しようとしたときに何らかの理由で、出力にエラーが発生し続けました(Nullポインタ)。私はそれを別のものにします。私はそれを感謝します、仲間。 – Fontayne

関連する問題