ラインをどこから始めたいか、ラインをどれくらい長くしたいかを知っています。パネルの座標 100,100 から線を開始し、長さを 50 px にしたい。実行ごとにラインをランダムに傾けるにはどうすればよいですか? 私は次のようなことを考えていました:
Random rand = new Random(System.currentTimeMillis());
int angle = rand.nextInt % 360;
しかし、これを使用して線を引くにはどうすればよいでしょうか。
極座標を渡すことで、やりたいことを簡単に行うことができます。
// 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);
ランダムな角度 (ラジアン単位) を取得したら、線の高さには Math.sin(角度)*長さ、幅には Math.cos(角度)*長さを使用できます。最後に、Grapics drawLine(100,100,width,height) を使用して線を描画できます。