2025年2月27日 星期四

生命之歌 week02

 

//week02-1-fill-noStroke-rect
size(400,400);//視窗大小
background(255);//white background
fill(238);//fill the color
noStroke();//不要畫框線
rect(0,0,20,20);
rect(0,40,20,20);
rect(0,80,20,20);

//week02-2-for-for-if-rect
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-void-setup-void-draw
void setup(){
  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(){//one second draw 60 times
  stroke(255,0,0);//red line
  if(mousePressed)line(mouseX, mouseY, pmouseX, pmouseY);
}

//week02-4-PImage-loadImage-background-fill-println
//描圖
PImage img;
void setup(){
  size(400,400);
  img = loadImage("111.png");
}//remember move image in
void draw(){
  background(img);
  fill(255,mouseX);//rgba.alpha透明度=128
  println(mouseX);//把 mouseX值,在下面<小黑>印出來
  rect(0,0,400,400);//draw a big 四邊形 to cover all
}


無法畫圖,因為線條存留時間太短
//week02-5-combine-02-4-and-02-3-bad
PImage img;
void setup(){
  size(400,400);
  img = loadImage("333.png");//111.png 333.png
}//remember move image in
void draw(){
  background(img);
  fill(255,200);//rgba.alpha透明度=128
  
  rect(0,0,400,400);//draw a big 四邊形 to cover all
  stroke(255,0,0);//red line
  if(mousePressed)line(mouseX, mouseY, pmouseX, pmouseY);
}


畫圖,但無法修改,必須一筆畫完
//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("111.png");//111.png 333.png
}//remember move image in
void draw(){
  background(img);
  fill(255,200);//rgba.alpha透明度=128
  
  rect(0,0,400,400);//draw a big 四邊形 to cover all
  stroke(255,0,0);//red line
  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-ArrayList-ArrayList-Integer-for-for-mousePressed-mouseDragged
//想要很多段,不要一筆畫一直畫
ArrayList<Integer> x, y;//先有2個還沒準備好的小資料結構
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("111.png");//111.png 333.png
}//remember move image in
void draw(){
  background(img);
  fill(255,200);//rgba.alpha透明度=128
  rect(0,0,400,400);//draw a big 四邊形 to cover all
  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 mouseDragged(){
  x.add(mouseX);
  y.add(mouseY);
}
void mousePressed(){//按下滑鼠,建新的資料結構
  x = new ArrayList<Integer>(); xx.add(x);
  y = new ArrayList<Integer>(); yy.add(y);
}
//week02-6-ArrayList-ArrayList-Integer-for-for-mousePressed-mouseDragged
//想要很多段,不要一筆畫一直畫
ArrayList<Integer> x, y;//先有2個還沒準備好的小資料結構
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("111.png");//111.png 333.png
}//remember move image in
void draw(){
  background(img);
  fill(255,200);//rgba.alpha透明度=128
  rect(0,0,400,400);//draw a big 四邊形 to cover all
  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 mouseDragged(){
  x.add(mouseX);
  y.add(mouseY);
}
void mousePressed(){//按下滑鼠,建新的資料結構
  x = new ArrayList<Integer>(); xx.add(x);
  y = new ArrayList<Integer>(); yy.add(y);
}









沒有留言:

張貼留言