Flesh Tones:

New Architectural Membranes for a Changing Planet

Script

import processing.opengl.*;
//PDF
import processing.pdf.*;
boolean dosave=false;
//PDF
int ellipseXloc;
int ellipseYloc;
float ellipseX;
float ellipseY;
void setup(){
  size(500,500,OPENGL);
}
void draw(){
  ////////////////////////////////////////////PDF Start
 

if(dosave) {
    PGraphicsPDF pdf=(PGraphicsPDF)beginRaw(PDF, “####.pdf”);
   
    // set default Illustrator stroke styles and paint background rect.
    pdf.strokeJoin(MITER);
    pdf.strokeCap
 (SQUARE);
    pdf.fill(0);
    pdf.noStroke();
    pdf.rect(0,0, width,height);
  }
 
///////////////////////////////////////////PDF
  background(0);
  smooth();
  //noFill();
  //object array is now determined by window size  for (int j=0;j<height;j=j+30){
    for (int i=0;i<width;i=i+30){
      pushMatrix();
      float cellX=i;
      float cellY=j;
      float cellZ=constrain(i/4+mouseX/5,0,300);
      float mouseDist=dist(cellX,cellY,mouseX,mouseY);
      translate(cellX,cellY);      if (mouseDist<cellX/2){
        rotateY(radians(cellY)+120/mouseDist/2);
        rotateX(radians(cellZ/3+120/mouseDist/2));
      }
      else{
        rotateY(radians(cellZ));
        rotateX(radians(cellY/3));
      }
      scale(.75);
      if (cellX<200&&cellX>100&&cellY>100&&cellY<150){
        rotateZ(TWO_PI/j);
        stroke(150);
        strokeWeight(1);
        scale(constrain(j/3,1,2));
      }
      else{
        stroke(150);
        strokeWeight(.25);
        scale(constrain(i*3,2,1));
      }
      drawCell();
      popMatrix();
    
    }
  }
  /////////////////PDF Close
    if(dosave) {
    endRaw();
    dosave=false;
  }
//////////////////PDF
}
void drawCell(){
  ellipseX=(50);
  ellipseY=50;
  ellipseXloc=0;
  ellipseYloc=0;
  float ellipseQuad1x=ellipseXloc-ellipseX/2;
  float ellipseQuad1Y=ellipseYloc;
  float ellipseQuad2x=ellipseXloc-ellipseX/2;
  float ellipseQuad2Y=ellipseYloc;
  int aLineX=ellipseXloc;
  int aLineY=mouseY/4;
  int aLineZ=50;
  int bLineX=ellipseXloc;
  int bLineY=mouseY/4;
  int bLineZ=-50;
  if (aLineY>50){
    bLineX=-bLineY;
  }
  pushMatrix();  
  fill(225,225,255,100);
  ellipse (ellipseXloc,ellipseYloc,ellipseX,ellipseY);   
  popMatrix();
  pushMatrix();  
  fill(150,150,150,100);
  //stroke(0);
  strokeWeight(.5);
  translate(mouseX,mouseY); 
  ellipse (ellipseYloc*2,ellipseXloc*2,ellipseY,ellipseX);
  line(ellipseQuad1x,ellipseQuad1Y,0,bLineX,bLineY,bLineZ);
  line(ellipseQuad2x,ellipseQuad2Y,0,bLineX,bLineY,bLineZ);
  line (ellipseQuad1x,ellipseQuad1Y,0,aLineX,aLineY,aLineZ);
  line(ellipseQuad2x,ellipseQuad2Y,0,aLineX-mouseX/10,aLineY,aLineZ);
  translate(mouseY*2,mouseX*2);
  ellipse (ellipseYloc*2,ellipseXloc*2,ellipseY,ellipseX); 
  line (ellipseQuad1x,ellipseQuad1Y,0,aLineX,aLineY,aLineZ);
  line(ellipseQuad2x,ellipseQuad2Y,0,aLineX-mouseX/10,aLineY,aLineZ);
  line(ellipseQuad1x,ellipseQuad1Y,0,bLineX,bLineY,bLineZ);
  line(ellipseQuad2x,ellipseQuad2Y,0,bLineX,bLineY,bLineZ);
  popMatrix();
  pushMatrix();  
  fill(25,0,50,100);
  ellipse (ellipseQuad1x,ellipseQuad1Y,ellipseQuad2x,ellipseQuad2Y); 
  popMatrix();
  pushMatrix();    
  fill(25,75,150,100);
  ellipse (ellipseQuad1x,ellipseY,ellipseQuad2x,ellipseX); 
  popMatrix();
 
  pushMatrix();    
  fill(25,75,150,200);
  ellipse (mouseX,ellipseY,mouseY,ellipseX); 
  popMatrix();
  //line (ellipseQuad1x,ellipseQuad1Y,0,aLineX,aLineY,aLineZ);
  //line(ellipseQuad2x,ellipseQuad2Y,0,aLineX-mouseX/10,aLineY,aLineZ);
  //line(ellipseQuad1x,ellipseQuad1Y,0,bLineX,bLineY,bLineZ);
  //line(ellipseQuad2x,ellipseQuad2Y,0,bLineX,bLineY,bLineZ);
}
void keyPressed() {
  if(key==’s’) dosave=true;
 
  background(255);
}
 

Sep 11. 2006 Posted by petrinec | Script | | No Comments Yet