2016-06-23 4 views
1
void setup(){ 
    size(100,100); 
    fill(255,255,255); 
    rect(0,0,50,50); 
    rect(50,50,100,0); 
    rect(50,50,0,100); 
    rect(50,50,100,100); 
} 

void draw(){ 

} 

void mousePressed(){ 
    if ((mouseX <= 50) && (mouseY <= 50)){ 
    fill(random(0,255),random(0,255),random(0,255)); 
    rect(0,0,50,50); 
    } 
    if ((mouseX >= 50) && (mouseY >= 50)){ 
    fill(random(0,255),random(0,255),random(0,255)); 
    rect(50,50,100,100); 
    } 
    if ((mouseX >= 50) && (mouseY <= 50)){ 
    fill(random(0,255), random(0,255), random(0,255)); 
    rect(50,50,100,0); 
    } 
    if ((mouseX <= 50) && (mouseY >= 50)){ 
    fill (random(0,255),random(0,255),random(0,255)); 
    rect(50,50,0,100); 
    } 
} 

Здравствуйте, я новый программист недавно представил обработки 3. Когда я запускаю этот код, 2 квадрата отсутствуют (верхний правый и нижний левый). Я просмотрел код, но я не вижу никаких ошибок. Если кто-то знает, что не так в коде, пожалуйста, дайте мне знать.Почему не отображаются два моих прямоугольника?

Любая помощь с благодарностью.

Спасибо!

ответ

1

Давайте посмотрим на the reference для rect() функции:

По умолчанию, первые два параметра установить местоположение верхнего левого угла, третий устанавливает ширину, и четвертый наборы высота.

Теперь давайте посмотрим на две строки кода у вас возникли проблемы с:

rect(50,50,100,0); 

Этот прямоугольник будет 0 пикселей в высоту, так что вы не будете видеть его. Точно так же:

rect(50,50,0,100); 

Этот прямоугольник будет 0 пикселей в ширину, так что вы не будете видеть его.

Я предполагаю, что вы думаете, что последние два параметра - нижний правый угол, но по умолчанию это не так. Конечно, вы можете изменить это, используя функцию rectMode():

rectMode(CORNERS);