2010-06-15 5 views
0

Я пытаюсь нарисовать круги купола в случайных позициях в приложении для Android. Я рисую их на растровое изображение, а затем рисую это растровое изображение на холсте. Это функция, в которой нарисовать круги:Рисование случайных кругов

private void drawRandomCircles(int numOfCircles) { 
    Canvas c = new Canvas(b); 
    Paint cPaint = new Paint; 
    cPaitn.setColor(Color.RED); 
    for(int i = 0; i < numOfCircles; i++) { 
     int x = Math.Random % 100; 
     int y = Math.Random % 100; 
     c.drawCircle(x, y, 20, cPaint) 
    } 
} 

Bitmap b является глобальным. И после вызова этой функции я просто рисую растровое изображение в методе onDraw. Теперь проблема в том, что я получаю только один круг, нарисованный на экране, независимо от размера numOfCircles.

Любые подсказки, что здесь происходит?

ответ

1

Этот код даже не скомпилирован. Например, что такое new Paint;?

Предлагаю вам ввести свои аргументы в drawCircle, чтобы убедиться, что вы рисуете их в разных местах. Если, например, Math.Random - это поле, оно изменилось бы между чтениями, которые бы поместили круги друг на друга.

Если вы намеревались написать Math.random() ошибка в том, что Math.random() возвращает значение между 0 и 1. Вы можете захотеть использовать

Random r = new Random(); 
// your loop 
    int x = r.nextInt(100); 
    int y = r.nextInt(100); 
+0

Во-первых, я хотел бы поблагодарить Вас за ответ и за совет. Код не компилируется, потому что я написал его вручную, вместо того, чтобы копировать его из источника (я знаю, что это глупо). Я изменил вызовы Math.random() с вызовами класса Random и сделал трюк. Еще раз большое спасибо! – ViktorC

Смежные вопросы