Hello everybody, I’m working on a small personal exercise and I cannot undestrand how to avoid the born of random ball inside of the small square.
The idea is to fill only the white square and leave the pink-center square empty; I was thinking with map or constrain function but I never use it… Someone can help me?
CODE:
void setup () {
size (1000, 1000);
background (255);
rectMode (CENTER);
fill (255, 0, 0, 40);
rect (width/2, height/2, 300, 300);
}
void draw() {
float x = random (width);
float y = random (height);
fill(0,30);
ellipse (x, y, 30, 30);
}
1 Like
You can either test a new ball if it’s not inside the rect and only then display it
void setup () {
size (1000, 1000);
background (255);
rectMode (CENTER);
fill (255, 0, 0, 40);
rect (width/2, height/2, 300, 300);
}
void draw() {
float x = random (width);
float y = random (height);
if ( ! (x>width/2-150 && x<width/2+150)) { // **and the y-position of the ball???? How do you have to add this? The ! means logical NOT**
fill(0, 30);
ellipse (x, y, 30, 30);
}
}
OR you just make the random values in a way that it’s automatically outside the inner rectangle, which is a bit harder, since the allowed area is AROUND the forbidden inner rectangle… (especially to distribute the points evenly)
Chrisir
1 Like
I don’t know how to manage the y position (height) in order to create the balls around the inner rectangle….
It’s the same as with x
if ( ! (x>width/2-150 && x<width/2+150 &&
y>height/2+150 && y height/2 + 150) ) {
1 Like
You may also be interested in this circle-rect collision detection demo:
1 Like