Нарисуйте разные формы многоугольника случайным образом - PullRequest
0 голосов
/ 12 октября 2009

Моя программа рисует 10 многоугольников в случайных размерах (ширина и высота). Координаты (точки) многоугольника были сгенерированы с использованием Random generator = new Random(). Так как точки треугольника, ширина и высота были сгенерированы случайным образом, как я могу контролировать количество нарисованных размеров? например всего 10 полигонов, но я хотел ограничить количество разных размеров, например только 2 или 4 разных размера.

for(int i = 0; i < 10; i++) {
   double xWidth = generator.nextDouble() * 50.0 + 20.0; // range width of triangle
   double yHeight = generator.nextDouble() * 50.0 + 20.0; // range height of triangle

   xCoord[0] = generator.nextInt(300);
   yCoord[0] = generator.nextInt(300);

   xCoord[1] = (int) (xCoord[0] - xWidth);
   xCoord[2] = (int) (xCoord[1] + (xWidth/2));         

   yCoord[1] = yCoord[0];
   yCoord[2] = (int) (yCoord[1] - yHeight);         

   triangles.add( new Polygon(xCoord,yCoord, 3));
}

Ответы [ 3 ]

0 голосов
/ 12 октября 2009

Этот код генерирует только строки, где-то должен быть .draw () - вы просто оборачиваете это в какой-то код, который выбирает от одного до четырех треугольников - который снова будет нуждаться в каком-то рандомизаторе, если вы хотите, чтобы они были выбраны случайным образом.

0 голосов
/ 12 октября 2009
int limit = generator.nextInt(4)+1;    // [1,4]
for(int i = 0; i < limit; i++) {
 //...
}
0 голосов
/ 12 октября 2009

Почему бы просто не генерировать случайным образом 4 фигуры, а затем запустить другой цикл, чтобы случайным образом выбрать эти четыре фигуры.

...