07. 3D

Att rita i 3D är lite mera komplicerat men absolut inte omöjligt. Framför allt är det otroligt häftigt då man kan rotera kroppar, ändra ljussättning och låta t.ex. arduino eller musen styra sketchen.


Rita ett klot

void setup()
  {
    size(800,600,P3D);  // fönsterstorleken samt vilken rendering
  }

void draw()
  {
    background(255);         // bakgrundsfärg
    pushMatrix();            // starta "transformationen" 
    translate(400, 300, 0);  // flytta koordinatsystemet
    fill(#B9ED9E);           // fyll med färg
    stroke(10);              // färg
    sphere(110);             // klot(diameter i px)
    popMatrix();             // avsluta "transformationen"
  }

 Klot + mus

 

void setup()
  {
    size(800,600,P3D);  // fönsterstorleken samt vilken rendering
  }

void draw()
  {
    background(#82EAF2);     // bakgrundsfärg
    pushMatrix();            // starta "transformationen" 
    translate(400, 300, 0);  // flytta koordinatsystemet
    
    float rotX = map(mouseY, 0, 800, 2*PI, 0);    // skala om värden
    float rotY = map(mouseX, 0, 600, 2*PI, 0);    // skala om värden  
    
    rotateX(rotX);      // rotera kring y-axeln
    rotateY(rotY);      // rotera kring y-axeln
    fill(#FA7ED1);      // fyll med färg
    strokeWeight(1);    // tjocklek
    stroke(255);
    sphere(170);        // klot(diameter i px)
    popMatrix();        // avsluta "transformationen"
  }

 

Rotera flera klot

 

void setup(){
  
  size(800,800,P3D);
}


void draw(){

  background(250);
  pushMatrix();
  translate(300, 300, 0);
  float rotationX = map(mouseX, 0, 800, 0, 2*PI);
  rotateX(rotationX);
  noFill();
  stroke(50);
  sphere(200);
  popMatrix();

  
  pushMatrix();
  translate(600, 600, 0);
  rotateY(-rotationX);
  rotateZ(rotationX);
  noFill();
  stroke(50);
  sphere(270);
  popMatrix();
}

 

Leave a comment