Идея проекта такая: делаем прямоугольник, берём его координаты. Когда нажимается кнопка мыши, проверяем её координаты. Если курсор правее левого края и левее правого, а так же выше нижнего края и ниже верхнего — то значит, курсор между краёв, значит, всё ок.
int bgColor = 100;
void setup() {
size(400,400);
stroke(150);
}
void draw() {
background(bgColor);
//первый, чёрный прямоугольник
fill (0);
line(50,0,50,height); // линия x = 50
line(50+30,0,50+30,height);// линия x = 50 + 30 (80)
line(0,60,width,60); // линия y = 60
line(0,60+30,width,60+30); // линия y = 60+30 (90)
rect(50,60,30,30);
// второй, белый прямоугольник — такой же, но со смещением
translate(100,200);
fill (255); //он будет белый
line(50,0,50,height); // линия x = 50
line(50+30,0,50+30,height);// линия x = 50 + 30 (80)
line(0,60,width,60); // линия y = 60
line(0,60+30,width,60+30); // линия y = 60+30 (90)
rect(50,60,30,30);
}
void mousePressed(){
//для первой кнопки
if ( 50 <= mouseX && mouseX <= 80 && 50 <=mouseY && mouseY <=90){
bgColor = 0;
}
//для второй кнопки
if ( 50+100 <= mouseX && mouseX <= 80+100 && 50+200 <=mouseY && mouseY <=90+200){
bgColor = 255;
}
}
Ещё можно подключать стандартные библиотеки, но об этом позже. Вот пример на сайте Processing, там и круглая есть, для неё другая формула:
https://processing.org/examples/button.html