2015-10-16 1 views
0

Я пытался создать группу эллипсов с различным радиусом в обработке. Я создал массив значений радиуса и использовал цикл for для создания серии эллипсов с различным радиусом.Как организовать эллипсы в нескольких строках, используя цикл для обработки

Существует восемь эллипсов, расположенных линейно. Вместо того, чтобы держать эллипсы в одном ряду, я хотел, чтобы их помещали в два или три ряда. Как я могу это сделать? Какова была бы природа цикла for в такой ситуации?

float [] r = {10,20,30,50,30,22,16,12}; 


void setup(){ 
size(400,400); 
smooth(); 
} 

void draw(){ 
background(225); 

for(int i = 0;i<r.length;i++){ 

    ellipse(50+i*30,50,r[i],r[i]); 

} 

} 
+0

@gsamaras он сделал, он сказал, что язык программирования был [Обработка] (https://processing.org/). –

ответ

0

Я рекомендую вытащить лист бумаги и карандаш и нарисовать несколько примеров. Какая позиция x,y каждого круга? Каков индекс каждого круга? Вы, вероятно, не поймете никакого ответа, пока не заметите шаблон самостоятельно.

В любом случае, вы можете сделать это с помощью одного цикла: используйте modulo operator для вычисления позиции и/или сохраните позицию y в переменной, которую вы увеличиваете.

Но это может быть проще просто использовать вложенный цикл:

float [] r = { 
    10, 20, 30, 50, 30, 22, 16, 12 
}; 

void setup() { 
    size(400, 400); 
    smooth(); 
} 

void draw() { 
    background(225); 

    for (int row = 0; row < 2; row++) { 
    for (int column = 0; column < 4; column++) { 
     int index = row*4 + column; 
     ellipse(50+column*30, 50+row*50, r[index], r[index]); 
    } 
    } 
} 
+0

Спасибо @ Kevin Workman. :) –

+0

@ v.k. Какие изменения вы меняете? Я не вижу разницы в сравнении бок о бок, но мне может быть что-то не хватает! –

+0

@KevinWorkman Синтаксис подсветки. ''. Намного лучше увидеть код;) Вы можете увидеть его в бок о бок-снимок –

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