2025年3月13日 星期四

week04

 



//week04-1-atan2-dy-dx-cos-sin

void setup(){

  size(600,300);

}

void draw(){

  background(#C0FFEE); //粉清咖啡 ,是零不是o

  ellipse(150,150,100,100);//眼睛

  //ellipse(150+25,150,50,50);

  float dx=mouseX-150,dy=mouseY-150;

  float  a=atan2(dy,dx);//算出角度

  ellipse(150+cos(a)*25, 150+sin(a)*25,50,50);

}



//week04-1-atan2-dy-dx-cos-sin

void setup(){

  size(600,300);

}

void draw(){

  background(#C0FFEE); //粉清咖啡 ,是零不是o

  for(int x=150;x<=450;x+=300){

    ellipse(x,150,100,100);//眼睛

    //ellipse(150+25,150,50,50);

    float dx=mouseX-x,dy=mouseY-150;

    float a=atan2(dy,dx);//算出角度

    ellipse(x+cos(a)*25, 150+sin(a)*25,50,50);

  }

}



//week04-3-rotateX-randians-mouseY

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(128);

  translate(width/2,height/2);

  //rotateY(radians(mouseX));//上週的左右轉

  rotateX(radians(-mouseY));//本週的上下轉

  box(200);

}



//week04-4-rotateZ

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(128);

  translate(width/2,height/2);

  //rotateY(radians(mouseX));//上週的左右轉

  rotateZ(radians(mouseY));//本週的上下轉

  ellipse(0,0,100,150);

}



//week04-5-robot-arm- pushMatrix-T-R-T-box-popMatrix

void setup(){

  size(400,400,P3D);

}

void draw(){

   background(128);

   translate(width/2,height/2);

   pushMatrix();

   translate(0,100);

   box(50);

   pushMatrix();

       translate(0,-25);

       rotateZ(radians(mouseX));

       translate(0,-50);

       box(10,100,10);

     popMatrix();

   popMatrix();

}



//week40-5a-rotateZ-translate-box

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(128);

  translate(width/2,height/2);//移到畫面中央

  //以下2行,分別註解,排列觀察

  rotateZ(radians(frameCount));//z軸旋轉

  translate(0,-50);//把下端,移到中心

  box(10,100,10);//可轉動的長條 

}



//week04-6-push-translate-rotate-sphere-pop

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(128);

  pushMatrix();

  translate(mouseX,mouseY);

  rotateY(radians(frameCount));

  sphere(100);

  popMatrix();

}


//week04-7

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(128);

  translate(width/2,height/2);

  sphere(50);

  rotateY(radians(frameCount));

  pushMatrix();

  translate(150,0);

  rotateY(radians(frameCount));

  sphere(30);

  popMatrix();

}



//week04-09-earth-texture

//google: earth map teture 下載一張地球地圖

//把圖檔拉到程式裡

PImage img=loadImage("earth.jpg");

size(600,300);

image(img,0,0,600,300);



//week04-10

size(400,400,P3D);

PShape earth=createShape(SPHERE,100);

PImage img=loadImage("earth.jpg");

earth.setTexture(img);

shape(earth);



//week04-11

PShape earth;

void setup(){

  size(400,400,P3D);

  earth=createShape(SPHERE,100);

  PImage img=loadImage("earth.jpg");

  earth.setTexture(img);

}

void draw(){

  background(0);

  translate(width/2,height/2);

  rotateY(radians(frameCount));

  shape(earth);

}



//week04-12 moon

PShape moon;

void setup(){

  size(400,400,P3D);

  moon=createShape(SPHERE,100);

  PImage img=loadImage("moon.jpg");

  moon.setTexture(img);

}

void draw(){

  background(0);

  translate(width/2,height/2);

  rotateY(radians(frameCount));

  shape(moon);

}



//week04-13 sun

PShape sun;

void setup(){

  size(400,400,P3D);

  sun=createShape(SPHERE,100);

  PImage img=loadImage("sun.jpg");

  sun.setTexture(img);

}

void draw(){

  background(0);

  translate(width/2,height/2);

  rotateY(radians(frameCount));

  shape(sun);

}



//week04-14-sun-earth-moon-setTexture

PShape sun,earth,moon;

//樓下,剪貼至week04-8,樓上是week04-11,12,13

void setup(){

  size(400,400,P3D);

  sun=createShape(SPHERE,50);

  PImage img=loadImage("sun.jpg");

  sun.setTexture(img);

 

  earth =createShape(SPHERE,30);

  img=loadImage("earth.jpg");

  earth.setTexture(img);

 

  moon=createShape(SPHERE,10);

  img=loadImage("moon.jpg");

  moon.setTexture(img);

 

 

}

void draw(){

  background(128);

  translate(width/2,height/2);

  shape(sun);//sphere(50);//太陽

  rotateY(radians(frameCount));

  pushMatrix();

  translate(150,0);

  rotateY(radians(frameCount));

  shape(earth);//sphere(30);//地球

  pushMatrix();

  translate(50,0);

  rotateY(radians(frameCount));

  shape(moon);//sphere(10);//月亮

  popMatrix();

  popMatrix();

}

沒有留言:

張貼留言