2025年3月20日 星期四

week05-12750441

 課堂作業1

//week05_1_i_love_you

size(300,300);  //大小300*300

stroke(255,0,0);  //紅色線條

for(int xx=0;xx<300;xx++){  //大的X 0..300

   for(int yy=0;yy<300;yy++){  //大的Y 0.300

     float x = (xx-150)/100.0;

     float y = -(yy-150)/100.0;  //減一半、除100

          //0...300變-150....150

    float d = x*x+y*y-1;

    if(d*d*d-x*x*y*y*y<0) point(xx,yy);

  }

}










課堂作業2

//week05_1b_i_love_you

size(300,300);//大小300*300

stroke(255,0,0);//紅色線條

translate(width/2,height/2);

for(int xx=-150;xx<150;xx++){//大的X 0..300

   for(int yy=-150;yy<150;yy++){//大的Y 0.300

     float x = xx/100.0;

     float y = -yy/100.0;//減一半、除100

          //0...300變-150....150

    float d = x*x+y*y-1;

    if(d*d*d-x*x*y*y*y<0) point(xx,yy);

  }

}
















課堂作業3
//week05_2_for_for_ellipse_arc_arc_radians_360
//角度 degress vs .radians
size(600,600);
background(0);
for(int i=0;i<6;i++){
  for(int j=0;j<6;j++){
    int now = i*6+j;//每個圓的編號
    ellipse(50+j*100,50+i*100,80,80);
    arc(50+j*100,50+i*100,40,40,0,radians(now*10),PIE);
    text(now,j*100,i*100+30);
  }
}









課堂作業4

//week05_3_

// degress vs .radians

void setup(){

  size(400,400);

}

void draw(){

  background(128);

  line(200,200,400,200);

  line(200,200,mouseX,mouseY);

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

  float a = atan2(dy,dx);

  arc(200,200,200,200,0,a,PIE);

  textSize(30);

  text("radians:"+a,100,100);

  text("degrees: "+degrees(a),100,130);

}


















課堂作業5
//week05_3b_atan2_dy_text_radians_degrees
// degress vs .radians
void setup(){
  size(400,400);
}
void draw(){
  background(128);
  line(200,200,400,200);
  line(200,200,mouseX,mouseY);
  float dx = mouseX-200, dy=mouseY-200;
  float a = atan2(dy,dx);
  if(a<0) arc(200,200,200,200,a,0,PIE);
  else arc(200,200,200,200,0,a,PIE);
  textSize(30);
  text("radians:"+a,100,100);
  text("degrees: "+degrees(a),100,130);
}















課堂作業6
//week05_4_translate_mouseX_mouseY_rotate_radians_ramCount
void setup(){
  size(400,400);
}
void draw(){
  background(204);
  //請做以下測試:把下面兩行,調一下順序
  //會發現:畫東西之前的translate()才有效果
  //在電腦圖學理,畫圖時,會照著之前的{累積的移動、旋轉}來放東西
  
  translate(mouseX,mouseY);//移到mouse所在位置
  rotate(radians(frameCount));
  rect(-50,-5,100,10);//寬度100的棒子,但放在左上角
 }












課堂作業7
//week05_5_translate_mouseX_mouseY_rotate_radians_ramCount
void setup(){
  size(400,400);
}
void draw(){
  background(204);
  //請做以下測試:把下面兩行,調一下順序
  //會發現:畫東西之前的translate()才有效果
  //在電腦圖學理,畫圖時,會照著之前的{累積的移動、旋轉}來放東西
  rotate(radians(frameCount)*10);
  translate(mouseX,mouseY);//移到mouse所在位置

  rect(-50,-5,100,10);//寬度100的棒子,但放在左上角
 }

















課堂作業8
//week05_6_pushMatrix_popMatrix_
void setup(){
  size(400,400);
}
void draw(){
  background(204);
  pushMatrix();
  translate(width/2,height/2);//(把下面這坨)移到畫面中心
  rotate(radians(frameCount)*10);
  rect(-50,-5,100,10);
  popMatrix();
  //希望在左邊-100的地方,也在轉
  pushMatrix();
  translate(width/2-100,height/2);//(把下面這坨)移到畫面中心
  rotate(radians(frameCount)*10);
  rect(-50,-5,100,10);
  popMatrix();
 }
















課堂作業9
//week05_7_many_pushMatrix
void setup(){
  size(500,500);
}
void draw(){
  background(204);
  for(int x= 50;x<500;x+=50){
    for(int y=50;y<500;y+=50){
      pushMatrix();
      translate(x,y);
      rotate(radians(frameCount));
      rect(-50,-5,100,10);
      popMatrix();
    }
  }
}


沒有留言:

張貼留言