Code:
float[][] rotateMatrix = new float[2][2];
void setup(){
size(720,480);
background(30,144,255);
noLoop();
}
void draw(){
noFill();
stroke(16,78,139);
int x0,y0,x1,y1,x2,y2;
x0 = int(random(720));
y0 = int(random(480));
x1 = int(random(720));
y1 = int(random(480));
x2 = int(random(720));
y2 = int(random(480));
for(float a=0; a < 2; a += 1){
rotateTriangle(x0,y0,x1,y1,x2,y2,(a*PI));
stroke(255,0,0);
}
}
void rotateTriangle(int x0, int y0, int x1, int y1, int x2, int y2, float r){
setRotateMatrix(r);
//calculating origin of the triangle
int ox = (x0+x1+x2)/3;
int oy = (y0+y1+y2)/3;
//translating back to (0,0) origin to make translating easier
float[][] origin = {{x0-ox,y0-oy},{x1-ox,y1-oy},{x2-ox,y2-oy}};
origin = multiplyMatrix(origin,rotateMatrix);
//going back to origin
for(int a=0; a < origin.length; a++){
for(int b=0; b < origin[0].length; b++){
if(b==0){
origin[a][b] += ox;
}else
origin[a][b] += oy;
}
}
triangle(origin[0][0],origin[0][1],origin[1][0],origin[1][1],origin[2][0],origin[2][1]);
}
void setRotateMatrix(float r){
rotateMatrix[0][0] = cos(r);
rotateMatrix[0][1] = -sin(r);
rotateMatrix[1][0] = sin(r);
rotateMatrix[1][1] = cos(r);
}
float[][] multiplyMatrix(float[][] matrix1, float[][] matrix2){
float[][] matrix3 = new float[matrix1.length][matrix2[0].length];
for(int a=0; a
}
}
}
return matrix3;
}
void drawTriangle(int x0, int y0, int x1, int y1, int x2, int y2){
line(x0,y0,x1,y1);
line(x1,y1,x2,y2);
line(x2,y2,x0,y0);
}
Code:
float[][] rotateMatrix = new float[2][2];
void setup(){
size(720,480);
background(30,144,255);
noLoop();
}
void draw(){
noFill();
stroke(16,78,139);
int x0,y0,x1,y1,x2,y2;
x0 = int(random(720));
y0 = int(random(480));
x1 = int(random(720));
y1 = int(random(480));
x2 = int(random(720));
y2 = int(random(480));
for(float a=0; a < 2; a += .04166666){
rotateTriangle(x0,y0,x1,y1,x2,y2,(a*PI));
}
}
void rotateTriangle(int x0, int y0, int x1, int y1, int x2, int y2, float r){
setRotateMatrix(r);
//calculating origin of the triangle
int ox = (x0+x1+x2)/3;
int oy = (y0+y1+y2)/3;
//translating back to (0,0) origin to make translating easier
float[][] origin = {{x0-ox,y0-oy},{x1-ox,y1-oy},{x2-ox,y2-oy}};
origin = multiplyMatrix(origin,rotateMatrix);
//going back to origin
for(int a=0; a < origin.length; a++){
for(int b=0; b < origin[0].length; b++){
if(b==0){
origin[a][b] += ox;
}else
origin[a][b] += oy;
}
}
triangle(origin[0][0],origin[0][1],origin[1][0],origin[1][1],origin[2][0],origin[2][1]);
}
void setRotateMatrix(float r){
rotateMatrix[0][0] = cos(r);
rotateMatrix[0][1] = -sin(r);
rotateMatrix[1][0] = sin(r);
rotateMatrix[1][1] = cos(r);
}
float[][] multiplyMatrix(float[][] matrix1, float[][] matrix2){
float[][] matrix3 = new float[matrix1.length][matrix2[0].length];
for(int a=0; a
}
}
}
return matrix3;
}
void drawTriangle(int x0, int y0, int x1, int y1, int x2, int y2){
line(x0,y0,x1,y1);
line(x1,y1,x2,y2);
line(x2,y2,x0,y0);
}
Code:
float[][] rotateMatrix = new float[2][2];
void setup(){
size(950,700);
background(30,144,255);
noLoop();
}
void draw(){
fill(0);
rect(0,0,50,50);
pushMatrix();
for(int i=0; i < 9; i++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int j=0; j < 9; j++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 10; a++){
popMatrix();
}
fill(random(255),random(255),random(255));
translate(50,0);
rect(0,0,50,50);
pushMatrix();
for(int k=0; k < 8; k++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int j=0; j < 8; j++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 9; a++){
popMatrix();
}
fill(random(255),random(255),random(255));
translate(50,0);
rect(0,0,50,50);
pushMatrix();
for(int b=0; b < 7; b++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int c=0; c < 7; c++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 8; a++){
popMatrix();
}
fill(random(255),random(255),random(255));
translate(50,0);
rect(0,0,50,50);
pushMatrix();
for(int b=0; b < 6; b++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int c=0; c < 6; c++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 7; a++){
popMatrix();
}
fill(random(255),random(255),random(255));
translate(50,0);
rect(0,0,50,50);
pushMatrix();
for(int b=0; b < 5; b++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int c=0; c < 5; c++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 6; a++){
popMatrix();
}
fill(random(255),random(255),random(255));
translate(50,0);
rect(0,0,50,50);
pushMatrix();
for(int b=0; b < 4; b++){
translate(50,50);
rect(0,0,50,50);
pushMatrix();
}
for(int c=0; c < 4; c++){
translate(50,-50);
rect(0,0,50,50);
}
for(int a=0; a < 5; a++){
popMatrix();
}
noFill();
stroke(random(255),random(255),random(255));
int x0,y0,x1,y1,x2,y2;
x0 = 0;
y0 = 0;
x1 = 100;
y1 = 100;
x2 = 50;
y2 = 50;
translate(175,25);
for(float a=0; a < 2; a += .04166666){
rotateTriangle(x0,y0,x1,y1,x2,y2,(a*PI));
}
stroke(random(255),random(255),random(255));
translate(-250,500);
pushMatrix();
for(int i=0; i < 50; i++){
rotate(PI/12);
rect(0,0,100,50);
}
stroke(random(255),random(255),random(255));
translate(500,-275);
for(int i=0; i < 50; i++){
rotate(PI/12);
rect(0,0,100,50);
}
}
void rotateTriangle(int x0, int y0, int x1, int y1, int x2, int y2, float r){
setRotateMatrix(r);
//calculating origin of the triangle
int ox = (x0+x1+x2)/3;
int oy = (y0+y1+y2)/3;
//translating back to (0,0) origin to make translating easier
float[][] origin = {{x0-ox,y0-oy},{x1-ox,y1-oy},{x2-ox,y2-oy}};
origin = multiplyMatrix(origin,rotateMatrix);
//going back to origin
for(int a=0; a < origin.length; a++){
for(int b=0; b < origin[0].length; b++){
if(b==0){
origin[a][b] += ox;
}else
origin[a][b] += oy;
}
}
triangle(origin[0][0],origin[0][1],origin[1][0],origin[1][1],origin[2][0],origin[2][1]);
}
void setRotateMatrix(float r){
rotateMatrix[0][0] = cos(r);
rotateMatrix[0][1] = -sin(r);
rotateMatrix[1][0] = sin(r);
rotateMatrix[1][1] = cos(r);
}
float[][] multiplyMatrix(float[][] matrix1, float[][] matrix2){
float[][] matrix3 = new float[matrix1.length][matrix2[0].length];
for(int a=0; a
}
}
}
return matrix3;
}
void drawTriangle(int x0, int y0, int x1, int y1, int x2, int y2){
line(x0,y0,x1,y1);
line(x1,y1,x2,y2);
line(x2,y2,x0,y0);
}


