xxxxxxxxxx
Pixole myPixole;
Pixole myPixole1;
boolean button = false;
void setup() {
size(600,600);
myPixole = new Pixole(50,50);
myPixole1 = new Pixole(100,100);
}
void draw() {
background(0);
myPixole.drawCircles(0,0,20,20);
myPixole1.drawCircles(10,10,30,30);
}
void mousePressed() {
button = !button;
}
class Pixole {
float distance;
float scaleFactor;
int widthCircle;
int heightCircle;
// Making a Constructor with arguments
Pixole(int tempWidthCircle, int tempHeightCircle) {
widthCircle = tempWidthCircle;
heightCircle = tempHeightCircle;
noStroke();
}
// Making a function
void drawCircles(int startPatternHorizontal, int startPatternVertical, int spacingPatternVertical, int spacingPatternHorizontal) {
ellipseMode(CENTER);
rectMode(CENTER);
for ( int i = startPatternHorizontal; i <= width; i += spacingPatternHorizontal) {
for ( int q = startPatternVertical; q <= height; q += spacingPatternVertical) {
distance = dist(mouseX, mouseY, i, q);
scaleFactor = map(distance,0,600*sq(2),0.01,.99);
// Make Rainbow Effect
fill(125 + sin(radians(frameCount))*125, 125 + cos(radians(frameCount))*125, 125 + sin(radians(-frameCount))*125);
ellipse(i, q, widthCircle*scaleFactor, heightCircle*scaleFactor);
if (distance < 50 && button == false) {
rect(i,q, 20 + widthCircle*scaleFactor, 20 + heightCircle*scaleFactor);
}
if (distance < 50 && button == true) {
ellipse(i, q, widthCircle*scaleFactor, heightCircle*scaleFactor);
}
}
}
}
}