2016年9月12日 星期一

Week 02 陳映心

課堂作業 1 : 

1. 畫線  (滑鼠移動到哪就畫線畫到哪)
  line(mouseX, mouseY, pmouseX, pmouseY);
  //pmouseX : 前一個時間點的位置



2. 畫線  (滑鼠按下去才畫,放開就不畫)
  if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
  //mousePressed : 滑鼠按下去



3. 改變筆觸顏色  (利用鍵盤按鍵改變)
  void keyPressed(){             //鍵盤
  if (key=='1')stroke(#FF0004);  //按下'1'->紅色
  if (key=='2')stroke(#00FF2C);  //按下'2'->綠色
  if (key=='3')stroke(#008EFF);} //按下'3'->藍色


4. 改變筆觸粗細  (利用滑鼠滾輪改變)
  int now=1;  
  void mouseWheel(MouseEvent event) {  //滾輪
  float e = event.getCount();
  now += e;                            //
  if (now<1) now=1;                    //
  strokeWeight(now);                   //筆觸根據滾輪改變大小
  println (now); }



5. 存檔讀檔  (利用鍵盤s、r鍵)
  void keyPressed(){
  if (key=='1')stroke(#FF0004);
  if (key=='2')stroke(#00FF2C);
  if (key=='3')stroke(#008EFF);
  if (key=='s')save("now.png");        //按's'存檔 
  if (key=='r'){                       //按'r'讀檔
     PImage img=loadImage("now.png");  //讀入名為now.png的檔案
     if (img!=null) image(img, 0, 0);//如果檔案不等於null(檔案存在),                                        檔案放在(0,0)的位子


6. 叫出調色盤  (利用存檔讀檔)
  void keyPressed(){
  if (key=='1')stroke(#FF0004);
  if (key=='2')stroke(#00FF2C);
  if (key=='3')stroke(#008EFF);
  if (key=='s')save("now.png");
  if (key=='r'){
     PImage img=loadImage("now.png");
     if (img!=null) image(img, 0, 0);
  }
  if (key=='c'){                              //當按下'c'時
     save("beforeColor.png");                 //將畫好的圖先存檔
     PImage img=loadImage("colorMap.PNG");    //貼上調色盤圖片
     image(img, 0, 0);                        //放在(0,0)的位置
  }
  if (key=='d'){                              //當按下'd'時
     PImage img=loadImage("beforeColor.png"); //叫出貼上調色盤前畫的圖 
     if (img!=null) image(img, 0, 0);
  }
}



7. 選取顏色 (利用pixels吸取顏色)
  void draw(){
  if (bColorSelect){                         //如果正在選色
      loadPixels();                          //吸取pixels
      stroke(pixels[mouseX+mouseY*width]);   //將筆觸顏色改成pixels選的   }                                            顏色
  else if(mousePressed)                      //如果沒有在選色
  line(mouseX, mouseY, pmouseX, pmouseY);    //畫線
  }
  boolean bColorSelect=false;                //設定boolean函數(選色)
  void keyPressed(){
  if (key=='1')stroke(#FF0004);
  if (key=='2')stroke(#00FF2C);
  if (key=='3')stroke(#008EFF);
  if (key=='s')save("now.png");
  if (key=='r'){
     PImage img=loadImage("now.png");
     if (img!=null) image(img, 0, 0);
  }
  if (key=='c' && bColorSelect==false){      //若按下c且沒在選色
     bColorSelect=true;                      //則貼上色盤並選色
     save("beforeColor.png");              
     PImage img=loadImage("colorMap.PNG");
     image(img, 0, 0);   
  }else if (key=='c' && bColorSelect==true)  //若按下c且已選色
  {  bColorSelect=false;                     //則貼上原圖並不執行選色 
     PImage img=loadImage("beforeColor.png"); 
     if (img!=null) image(img, 0, 0);
  }
}


8. 完整程式碼 : 
void setup(){
  size(600, 600);
  background(255);
}
void draw(){
  if (bColorSelect){
      loadPixels();
      stroke(pixels[mouseX+mouseY*width]);
  }
  else if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY); 
}
boolean bColorSelect=false;
void keyPressed(){
  if (key=='1')stroke(#FF0004);
  if (key=='2')stroke(#00FF2C);
  if (key=='3')stroke(#008EFF);
  if (key=='s')save("now.png");
  if (key=='r'){
     PImage img=loadImage("now.png");
     if (img!=null) image(img, 0, 0);
  }
  if (key=='c' && bColorSelect==false){
     bColorSelect=true;
     save("beforeColor.png");
     PImage img=loadImage("colorMap.PNG");
     image(img, 0, 0);   
  }else if (key=='c' && bColorSelect==true){
     bColorSelect=false;
     PImage img=loadImage("beforeColor.png"); 
     if (img!=null) image(img, 0, 0);
  }
}
int now=1;
void mouseWheel(MouseEvent event) {
  float e = event.getCount();
  now += e;
  if (now<1) now=1;
  strokeWeight(now);
  println (now);
}



沒有留言:

張貼留言