2025年4月4日 星期五

12750512-林政杰-week02

  week02-1

程式碼:///week02-1

size(400,400);//ok 視窗大小400*400

background(255);//ok 白色背景

fill(238);//填充的色彩

noStroke();//不要畫框線

rect(0,0,20,20);//四邊形rectangle x,y,z

rect(0,40,20,20);

rect(0,80,20,20);



week02-2
程式碼://week02-2_for_for_if
size(400,400);
background(255);
fill(238);
noStroke();
float s=400/14;//每個格子的大小
for(int i=0;i<14;i++){//左手i對應y座標
  for(int j=0;j<14;j++){//右手j對應x座標
    //rect(0,i*s*2,s,s);//先試一下位置
    if((i+j)%2==0) rect(j*s,i*s,s,s);
  }//下面才是真的程式碼,完成畫格子的任務
}
week02-3
程式碼://week02-3_void _setup_void_draw
void setup(){//一開始設定1次(貼上剛剛week02-2的程式)
  size(400,400);
  background(255);
  fill(238);
  noStroke();
  float s=400/14;//計算每個格子的大小
  for(int i=0;i<14;i++){//左手i對應y座標
    for(int j=0;j<14;j++){//右手j對應x座標
      //rect(0,i*s*2,s,s);//先試一下位置
      if((i+j)%2==0)rect(j*s,i*s,s,s);//
    }//下面才是真正的程式碼
  }
}
void draw(){//每秒畫60次
  stroke(255,0,0);//紅色的線
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}//如果mouse按下去,就畫線,給兩個座標:現在的mouse和之前的mouse


week02-4
程式碼:
//week02-4_PImage_loadImage_background_fill_println
//新的開始,要描圖
PImage img;
void setup(){
  size(400,400);
  img=loadImage("cute.png");
}//記得把圖檔,(像上周一樣)拉到程式碼裡
void draw(){
  fill(255,mouseX);
  background(img);//半透明的色彩,白色,alpha值是128
  println(mouseX);//把mouseX的值,下面「小黑」印出來
  rect(0,0,400,400);//畫超大的四邊形,全部蓋住
}




week02-5-a
程式碼:
//week02-5a_combine_02-4_and_02-3_bad
//要描圖,卻出錯
PImage img;
void setup(){
  size(400,400);
  img=loadImage("cute.png");
}//記得把圖檔,(像上周一樣)拉到程式裡
void draw(){
  background(img);
  fill(255,mouseX);//半透明的色彩 白色,alpha值是128
  println(mouseX);
  rect(0,0,400,400);//畫超大的四邊形,全部蓋住
  //上面是week02-4,下面week02-3 但線卻無法上去
  stroke(255,0,0);//紅色的線
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}


week02-5
程式碼:
//week02-5_ArrayList_Integer_new_for_size_get_add_mouseDragged
//要利用資料結構,把歷史軌跡 記起來
ArrayList<Integer>x=new ArrayList<Integer>();//新建資料結構
ArrayList<Integer>y=new ArrayList<Integer>();
PImage img;
void setup(){
  size(400,400);
  img=loadImage("cute.png");
}//記得把圖檔,(像上周一樣)拉到程式碼裡
void draw(){
  fill(255,mouseX);//半透明的色彩 白色,alpha值是128
  background(img);
  rect(0,0,400,400);//畫超大的四邊形,全部蓋住
  //上面是week02-4,下面用迴圈,從資料結構取出來
  for(int i=1;i<x.size();i++){
     line(x.get(i),y.get(i),x.get(i-1),y.get(i-1));
  }
}
void mouseDragged(){
  x.add(mouseX);
  y.add(mouseY);
}


week02-6
程式碼:
//week02-6_ArrayList_ArrayList_Integer_for_for_mousePressed_new_add
//想要有很多段,不要一職換 「一筆畫」一直接著畫
ArrayList<Integer> x,y;
ArrayList<ArrayList<Integer>> xx=new ArrayList<ArrayList<Integer>>();
ArrayList<ArrayList<Integer>> yy=new ArrayList<ArrayList<Integer>>();
PImage img;
void setup(){
  size(400,400);
  img=loadImage("cute.png");
}
void draw(){
  background(img);
  fill(255,200);//半透明色的色彩 白色,alpha值是128
  rect(0,0,400,400);//畫超大的四邊形,全部蓋住
  for(int I=0;I<xx.size();I++){
    ArrayList<Integer> x=xx.get(I); //大寫I對應大的資料結構
    ArrayList<Integer> y=yy.get(I);//取出裡面的小的資料結構
    for(int i=1;i<x.size();i++){//小的,在照舊畫
      line(x.get(i),y.get(i),x.get(i-1),y.get(i-1));
    }
  }
}
void mouseDragged(){
    x.add(mouseX);
    y.add(mouseY);
}
void mousePressed(){//滑鼠按下去時,建「新的」資料結構
    x=new ArrayList<Integer>();xx.add(x);
    y=new ArrayList<Integer>();yy.add(y);
}



week02-7
程式碼:
//week02-7
//想要有很多段,不要一職換 (一筆畫)一直接著畫
ArrayList<Integer> x,y;
ArrayList<ArrayList<Integer>> xx=new ArrayList<ArrayList<Integer>>();
ArrayList<ArrayList<Integer>> yy=new ArrayList<ArrayList<Integer>>();
PImage img;
void setup(){
  size(400,400);
  img=loadImage("cute.png");
}
void draw(){
  background(img);
  fill(255,200); 
  rect(0,0,400,400);
  for(int I=0;I<xx.size();I++){
    ArrayList<Integer> x=xx.get(I);
    ArrayList<Integer> y=yy.get(I);
    for(int i=1;i<x.size();i++){
      line(x.get(i),y.get(i),x.get(i-1),y.get(i-1));
    }
  }
}
void keyPressed(){
  if(key=='s' || key=='S'){
    for(int I=0;I<xx.size();I++){
    ArrayList<Integer> x=xx.get(I);
    ArrayList<Integer> y=yy.get(I);
    println("beginShape():");
    for(int i=1;i<x.size();i++){
      println("vertex("+x.get(i)+","+y.get(i)+");");
      }
      println("endShape():");
    }
  }
}
void mouseDragged(){
  println("vertex("+mouseX+","+mouseY+");");
  x.add(mouseX);
  y.add(mouseY);
}
void mousePressed(){
    x=new ArrayList<Integer>();xx.add(x);
    y=new ArrayList<Integer>();yy.add(y);
}






w

沒有留言:

張貼留言