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 Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s