week02-1_fill_noStroke_rect
rect:四邊形 recrangle
noStroke() : 不要畫框線
fill(238) : 填充色彩
// 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_linevoid setup(){ // 一開始,設定1次(貼上剛剛 week02_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++){ // 左手 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
先照上周一樣把圖片拉進去
把原本的圖片變成底圖
調整透明度,讓圖像有描圖紙一樣
一開始出來是白色
用 mouseX 調整成滑鼠座標在哪,那裡的圖片就會有顯示出來
// week02_4_PImage_loadImage_fill_println
// 要描圖
PImage img;
void setup(){
size(400,400);
img = loadImage("usachi.png");
} // 記得把圖檔,(像上周一樣)拉到程式碼裡
void draw(){
background(img);
fill(255,mouseX); // 半透明的色彩,白色,alpha(透明度)值是128
println(mouseX); // 把 mouseX 的值,在下面「小黑」印出來
rect(0,0,400,400); // 畫超大的四邊形,全部蓋住
}
一開始
滑鼠移動到圖片上
week02-5
// week02_5a_combine02_4_and_02_3_bad // 要描圖,卻出錯,畫不出來 PImage img; void setup(){ size(400,400); img = loadImage("usachi.png"); } // 記得把圖檔,(像上周一樣)拉到程式碼裡 void draw(){ background(img); fill(255,200); // 半透明的色彩,白色,alpha(透明度)值是128 rect(0,0,400,400); // 畫超大的四邊形,全部蓋住 // 上面是 week02_4,下面是 week02_3,但線卻無法上去 stroke(255,0,0); // 紅色的線 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("usachi.png"); } // 記得把圖檔,(像上周一樣)拉到程式碼裡 void draw(){ background(img); fill(255,200); // 半透明的色彩,白色,alpha(透明度)值是128 rect(0,0,400,400); // 畫超大的四邊形,全部蓋住 // 上面是 week02_4,下面是 week02_3,但線卻無法上去 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<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("usachi.png"); } // 記得把圖檔,(像上周一樣)拉到程式碼裡 void draw(){ background(img); fill(255,200); // 半透明的色彩,白色,alpha(透明度)值是128 rect(0,0,400,400); // 畫超大的四邊形,全部蓋住 // 上面是 week02_4,下面是 week02_3,但線卻無法上去 for(int I=0; 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); }week02-7_畫圖有座標// week02_7_// 想要有很多段,不要「一筆畫」一直接著畫+座標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("usachi.png"); } // 記得把圖檔,(像上周一樣)拉到程式碼裡 void draw(){ background(img); fill(255,200); // 半透明的色彩,白色,alpha(透明度)值是128 rect(0,0,400,400); // 畫超大的四邊形,全部蓋住 // 上面是 week02_4,下面是 week02_3,但線卻無法上去 for(int I=0; 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(){ // 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); }// 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("usachi.png"); } // 記得把圖檔,(像上周一樣)拉到程式碼裡 void draw(){ background(img); fill(255,200); // 半透明的色彩,白色,alpha(透明度)值是128 rect(0,0,400,400); // 畫超大的四邊形,全部蓋住 // 上面是 week02_4,下面是 week02_3,但線卻無法上去 for(int I=0; 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'){ // 如果按下英文小寫 or 大寫 S 想 save 存權的話 for(int I=0;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++){ println("vertex(" + x.get(i)+ ", " + y.get(i) + ");"); } // 改在 keyPressed() 按下 s 或 S 時,再印全部 } } } 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); }
沒有留言:
張貼留言