2014-09-22 3 views
0

Я просто пытаюсь заставить круги расти и инвертировать с blendMode (DIFFERENCE); но радиус не меняется ..Обработка эллипсов PGraphics не растет

int radius = 15; 
int radius2 = 15; 

size(500, 500); 

PGraphics pg = createGraphics(500, 500); 
pg.beginDraw(); 
pg.background(255); 
pg.blendMode(DIFFERENCE); 
pg.fill(255); 
pg.noStroke(); 
pg.ellipse(width/2, height/2, radius, radius); 
pg.ellipse(width/2.25, height/2.25, radius2, radius2); 
pg.ellipse(width/2.25, height/1.8, radius2, radius2); 
pg.ellipse(width/1.8, height/2.25, radius2, radius2); 
pg.ellipse(width/1.8, height/1.8, radius2, radius2); 
radius++; 
pg.endDraw(); 


background(255); 
image(pg, 0, 0); 

ответ

1

От: https://github.com/processing/processing/wiki/Troubleshooting

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

Всё. Вам нужно обернуть свой код в функцию draw().

Вот хороший "кнопка"

int radius = 15; 
int radius2 = 15; 
PGraphics pg ; 

void setup() { 
    size(500, 500); 
    pg = createGraphics(500, 500); 
} 

void draw() { 
    pg.beginDraw(); 
    pg.background(255); 
    pg.blendMode(DIFFERENCE); 
    pg.fill(255); 
    pg.noStroke(); 
    pg.ellipse(width/2, height/2, radius, radius); 
    pg.ellipse(width/2.25, height/2.25, radius2, radius2); 
    pg.ellipse(width/2.25, height/1.8, radius2, radius2); 
    pg.ellipse(width/1.8, height/2.25, radius2, radius2); 
    pg.ellipse(width/1.8, height/1.8, radius2, radius2); 
    radius++; 
    pg.endDraw(); 


    background(255); 
    image(pg, 0, 0); 
}