作業1:畫出3個四邊形
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++){ //左手i 對應y座標
for(int j=0;j<14;j++){ //右手j 對應x座標
//rect(j*s,i*s,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++){ //左手i 對應y座標
for(int j=0; j<14; j++){ //右手j 對應x座標
//rect(j*s,i*s,s,s); //先試一下位置
if( i+j%2==0) rect(j*s,i*s,s,s);
} //下面才是真的程式碼 開始執行程式
}
}
void draw(){
stroke(255,0,0); //每秒畫60次
if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
//如果mouse 按下去,就畫線,給兩個座標(現在的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); //畫超大四邊形,全部蓋住
}
作業5:
- 錯誤版本:
//week02_5a_combine_02_4and02_3_bad
//要描圖,卻出錯
PImage img;
void setup(){
size(400,400);
img=loadImage("cute.png");
}//記得把圖檔,(像上週一樣)拉到程式碼裡
void draw(){
background(img);
fill(255,mouseX);//半透明的色彩 白色, alpha值是128
rect(0,0,400,400); //畫超大四邊形,全部蓋住
//上面是week02_4,下面是week02_3
stroke(255,0,0); //紅色的線
if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}
- 正確版:
作業6:
//week02_6_ArrayList_ArrayList_Integer_for_for_ArrayList_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); //畫超大四邊形,全部蓋住
//上面是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);
}
作業7:按住「s鍵」一邊瞄邊,會跑出座標
//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);//半透明的色彩 白色, 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大寫 想save存檔的話
for (int I=0; I<xx.size(); I++) { //大寫I對應大的資料結構
ArrayList<Integer> x=xx.get(I); //取出裡面小的資料結構
ArrayList<Integer> y=yy.get(I);
println("beginShape();"); //beginShape();
for (int i=1; i<x.size(); i++) { //小的,再照舊畫
println("vertex("+x.get(i)+ ","+ y.get(i) + ");" );
}//改在keyPressed()按下s或
println("endShape();"); //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);
}
沒有留言:
張貼留言