我知道我想要这条线从哪里开始,我知道我想排队多长时间。我希望该线以面板的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(Angle)*线的高度,而Math.cos(angle)*长度宽度。最后,您可以使用葡萄绘制线(100,100,宽度,高度)来绘制线条。