2025年2月27日 星期四

week02_12750094

課堂作業1

//week02_1_fill_noStroke_rect
size(400,400);
background(255);
fill(238);//填充的色彩
noStroke();//不要框線
rect(0,0,20,20);//四邊形 rectangle(x,y,w,h)
rect(0,40,20,20);
rect(0,80,20,20);




課堂作業2

//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++){//對應y座標
  for(int j=0;j<14;j++){//對應x座標
    //rect(0,i*s*2,s,s);//試位置
    if((i+j)%2==0) rect(j*s,i*s,s,s);
  }
}


課堂作業3

//week02_3_void_setup_void_draw_stroke_if_mousePressed_line
void setup(){//一開始設定一次   size(400,400);   background(255);   fill(238);   noStroke();   float s = 400/14;//計算格子大小   for(int i=0;i<14;i++){//對應y座標     for(int j=0;j<14;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(0,100,200);//設定顏色   if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); }//如果mouse按下,就畫線,給兩個座標:現在、之前的mouse




課堂作業4
//week02_4_PImage_loadImage_background_fill_println
//要描圖
PImage img;
void setup(){
  size(400,400);
  img = loadImage("cute.png");
}//記得把圖檔拉入程式中
void draw(){
   background(img);
   fill(255,mouseX);//半透明的白色,alpha值為128
   println(mouseX);//在小黑印出mouseX值
   rect(0,0,400,400);
}

課堂作業5a
//week02_5a_combine_02_4_and02_3
//要描圖,卻出錯
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);
  stroke(0,100,200);//設定顏色
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}
畫上的線會立刻被蓋掉
課堂作業5
//week02_5_ArrayList_Integer_new_for_size_get_add
//利用資料結構,把歷史軌跡記起來
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(){
  background(img);
  fill(255,200);//半透明的白色,alpha值為128
  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);
}//線會全部連在一起

課堂作業6
//week02_6_ArrayList_ArrayList_Integer_for_for_mouseDragged
//想要有很多段,不要一筆畫接著
ArrayList<Integer> x,y;//先有兩個還沒準備好的資料結構,等mousePressed再新增準備
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);
  //上面是week02_4,下面用迴圈從資料結構取出來
    for(int I=1;I<xx.size();I++)//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);
}

課堂作業7
//week02_7_keyPressed_if_key_s_for_for_println_vertex_beginShape
ArrayList<Integer> x,y;//先有兩個還沒準備好的資料結構,等mousePressed再新增準備
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);
  //上面是week02_4,下面用迴圈從資料結構取出來
    for(int I=1;I<xx.size();I++)//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=1;I<xx.size();I++)//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)+ ");");
      }//改在keyPressed()按下s或S時全部印
      println("endShape();");
    }
  }
}
void mouseDragged()
{
  //println("vertex(mouseX,mouseY)");
  //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);
}
























沒有留言:

張貼留言