3

ラインをどこから始めたいか、ラインをどれくらい長くしたいかを知っています。パネルの座標 100,100 から線を開始し、長さを 50 px にしたい。実行ごとにラインをランダムに傾けるにはどうすればよいですか? 私は次のようなことを考えていました:

Random rand = new Random(System.currentTimeMillis());
int angle = rand.nextInt % 360;

しかし、これを使用して線を引くにはどうすればよいでしょうか。

4

2 に答える 2

7

極座標を渡すことで、やりたいことを簡単に行うことができます。

// a random value in [0, 2PI] for the angle in radians
float angle = rand.nextFloat()*2*Math.PI; 
// length of the line
float magnitude = 50.0f;

// start point
Point2D.Float start = new Point2D.Float(100,100);
// end point
Point2D.Float end = new Point2D.Float(start.getX() + Math.cos(angle)*magnitude, start.getY() + Math.sin(angle)*magnitude);
于 2012-10-28T22:43:02.473 に答える
2

ランダムな角度 (ラジアン単位) を取得したら、線の高さには Math.sin(角度)*長さ、幅には Math.cos(角度)*長さを使用できます。最後に、Grapics drawLine(100,100,width,height) を使用して線を描画できます。

于 2012-10-28T22:43:47.763 に答える