如何在java中随机调整一行?

时间:2012-10-28 22:38:36

标签: java graphics

我知道我想在哪里开始这条线,而且我知道我想要排队多长时间。我希望这条线从一个面板的100,100坐标开始,我希望它长50 px。如何每次运行时随机调整线条?我想的是:

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

但是我现在如何使用它画线?

2 个答案:

答案 0 :(得分:7)

通过polar coordinates,你可以轻松地做你想做的事情:

// 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);

答案 1 :(得分:2)

一旦你有了随机角度(以弧度表示),你可以简单地使用Math.sin(angle)* length作为行的高度,使用Math.cos(angle)* length作为宽度。最后,您可以使用Grapics drawLine(100,100,width,height)来绘制线条。