Flesh Tones:

New Architectural Membranes for a Changing Planet

Script

import processing.opengl.*;
 
  int ellipseX;
  int ellipseY;
  int ellipseXloc ;
  int ellipseYloc ;
 
 
 
 
 
  //everything in voidsetup is read once
  void setup(){
    size(500,500,OPENGL);
    smooth();
    //int ellipseXloc = width/2;
    //int ellipseYloc = height/2;
   
 
  }
 
  void draw(){
 
    background(0); //sets background color to 150
 
 
      for (int j=0;j<height;j=j+20){//j++is short for j=j+1
      for (int i=0;i<width;i=i+25){
 
 
        pushMatrix();
        float cellX=i;
        float cellY=j;
        float cellZ=constrain(i/4+mouseX/5,0,300);
        float mouseDist=dist(cellX,cellY,mouseX,mouseY);
        int s= second();
        float m=millis();
 
        translate(cellX,cellY);
 
       if(mouseDist<300){
          rotateY(radians(cellY)+120/mouseDist/2);// rotate drawing
          rotateX(radians(cellX/3+120/mouseDist/2));
        }
        else{
          rotateY (radians(cellX));
          rotateX(radians(cellY/3));
        }
   if(mouseDist>300){
          rotateY(radians(cellY)+mouseX/mouseDist/2);// rotate drawing
          rotateX(radians(cellX/3+mouseY/mouseDist/2));
        }
        else{
          rotateY (radians(cellX));
          rotateX(radians(cellY/3));
        }
        scale(.5);
        if(cellX<100&&cellX>100&&cellY>100&&cellY<150){
          rotateX(TWO_PI/j);
          stroke(220+i,0,0);
          strokeWeight(1);
          scale(constrain(j/4,1,2));
        
        }

        else{
          stroke(150);
          strokeWeight(2);
         
        }
       
        if(mouseDist<width/2){
           fill(mouseY,mouseX,90,30*i);
        }
        else{
           fill(mouseY/2,mouseX,mouseY/4,m*i);
        }
      
        drawCell();
        popMatrix();
 
 
      }
    }
  }
 
 
 
 
  void drawCell(){
    ellipseX=mouseX;//constrained ellipseX size from 25-100
    ellipseY=mouseY-50;
    ellipseXloc=95;
    ellipseYloc=100;
    //sets ellipse to be center location minus half the diameter
    int ellipseQuad1X=ellipseXloc-ellipseX/2;
    int ellipseQuad1Y=ellipseYloc;
    int ellipseQuad2X=ellipseXloc+ellipseX/2;
    int ellipseQuad2Y=ellipseYloc;
 
    //align aLine’s X position with ellipse center
    int aLineX=ellipseXloc;
 
   int aLineY=mouseY/4;
    int aLineZ=50;
    //offsets bLines Xposition 25 pixels to the right of the ellipse center
    int bLineX=ellipseXloc+25;
    int bLineY=mouseY/4;
    int bLineZ=-50; 
    if (aLineY>50){
      bLineX=-bLineY;
    }
 
    // noFill();
    ellipse(ellipseXloc,ellipseYloc,ellipseX,ellipseY);
    line (ellipseQuad1X, ellipseQuad1Y,0, aLineX,aLineY,aLineZ);
    line (ellipseQuad2X, ellipseQuad2Y,0, aLineX,aLineY,aLineZ);
    line (ellipseQuad1X, ellipseQuad1Y,0, bLineX,bLineY,bLineZ);
    line (ellipseQuad2X, ellipseQuad2Y,0, bLineX,bLineY,bLineZ);
  }
 
  void keyPressed(){
    if (key==’s’){
      saveFrame(”######.jpg”);
    }
  }

Sep 8. 2006 - Posted by petrinec | Script | | No Comments Yet

No comments yet.

Leave a comment