我知道我想在哪里开始这条线,而且我知道我想要排队多长时间。我希望这条线从一个面板的100,100坐标开始,我希望它长50 px。如何每次运行时随机调整线条?我想的是:
Random rand = new Random(System.currentTimeMillis());
int angle = rand.nextInt % 360;
但是我现在如何使用它画线?
答案 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)来绘制线条。