2021年10月4日 星期一

week04 小小畫家

小畫家

Step 01:製作一個500*500視窗,當滑鼠點擊視窗時,視窗變成綠色,否則視窗為綠色。(如下圖)
程式碼入如下:
void setup(){
  size(500,500);  
}
void draw(){
  if(mousePressed) background(255,0,0);
  else background(0,255,0);
}

 Step 02:滑鼠點擊左上角會拉出一條線至滑鼠鼠標。


程式碼入如下:

void setup(){

  size(500,500);  

}

void draw(){

  if(mousePressed) line(mouseX,mouseY,0,0);

}


Step 03:讓現在屬標點擊的位置和移動後的數標位置做連線,我們只要將mouseX,mouseY後面的0,0改成pmouseX,pmouseY;




程式碼如下:

void setup(){
  size(500,500);  
}
void draw(){
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}



step 04:點擊區塊改變顏色,利用滑鼠座標更改顏色


程式碼如下:
void setup(){
  size(500,500); 
  fill(255,0,0);rect(0,0,100,100);//紅色
  fill(0,255,0);rect(0,100,100,100);//綠色
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100)stroke(255,0,0);//紅色
      else if(mouseY<200)stroke(0,255,0);//綠色
     }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}


step 05:將顏色改粗細
程式碼如下:
void setup(){
  size(500,500); 
  rect(0,0,100,100);ellipse(50,50,8,8);//紅色
  rect(0,100,100,100);ellipse(50,150,4,4);//綠色
 
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100)strokeWeight(8);//紅色
      else if(mouseY<200)strokeWeight(4);
     }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}



step 05-2:線條粗細的延伸版本
程式碼如下:
void setup(){
   size(500,500);
   for(int i=1;i<8;i++){
     rect( 0,i*50,50,50);
     ellipse(25,25+i*50,i,i);
   }
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
     for(int i=0;i<8;i++){
       if(mouseY>i*50 &&mouseY<i*50+50){
         strokeWeight(i);
       }
     }
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}



Step 06:可以選各式色彩


程式碼如下:
void setup(){
  size(500,500);
  fill(#FF0505); rect(0,50,50,50);
  fill(#FFB005); rect(0,100,50,50);
  fill(#D0FF05); rect(0,150,50,50);
  fill(#05FF24); rect(0,200,50,50);
  fill(#05DCFF); rect(0,250,50,50);
  fill(#051BFF); rect(0,300,50,50);
  fill(#7905FF); rect(0,350,50,50);
  fill(#FF05EF); rect(0,400,50,50);
}
void draw(){
 if(mousePressed){
   if(mouseX<50){
     if(mouseY>1*50&& mouseY<1*50+50)stroke(#FF0505);
     if(mouseY>2*50&& mouseY<2*50+50)stroke(#FFB005);
     if(mouseY>3*50&& mouseY<3*50+50)stroke(#D0FF05);
     if(mouseY>4*50&& mouseY<4*50+50)stroke(#05FF24);
     if(mouseY>5*50&& mouseY<5*50+50)stroke(#05DCFF);
     if(mouseY>6*50&& mouseY<6*50+50)stroke(#051BFF);
     if(mouseY>7*50&& mouseY<7*50+50)stroke(#7905FF);
     if(mouseY>8*50&& mouseY<8*50+50)stroke(#FF05EF);
  }else line(mouseX,mouseY,pmouseX,pmouseY);
 }
}


Step 07 可以自由改變筆觸粗細和顏色。
程式碼如下:
void setup(){
  size(500,500);
  rect(0,50,50,50);ellipse(25,25+50,1,1);
  rect(0,100,50,50);ellipse(25,25+100,2,2);
  rect(0,150,50,50);ellipse(25,25+150,3,3);
  rect(0,200,50,50);ellipse(25,25+200,4,4);
  rect(0,250,50,50);ellipse(25,25+250,5,5);
  rect(0,300,50,50);ellipse(25,25+300,6,6);
  rect(0,350,50,50);ellipse(25,25+350,7,7);
  rect(0,400,50,50);ellipse(25,25+400,8,8);
  
  fill(#FF0505); rect(450,50,50,50);
  fill(#FFB005); rect(450,100,50,50);
  fill(#D0FF05); rect(450,150,50,50);
  fill(#05FF24); rect(450,200,50,50);
  fill(#05DCFF); rect(450,250,50,50);
  fill(#051BFF); rect(450,300,50,50);
  fill(#7905FF); rect(450,350,50,50);
  fill(#FF05EF); rect(450,400,50,50);
}
void draw(){
 if(mousePressed){
   if(mouseX<50){
     if(mouseY>1*50&& mouseY<1*50+50)strokeWeight(1);
     if(mouseY>2*50&& mouseY<2*50+50)strokeWeight(2);
     if(mouseY>3*50&& mouseY<3*50+50)strokeWeight(3);
     if(mouseY>4*50&& mouseY<4*50+50)strokeWeight(4);
     if(mouseY>5*50&& mouseY<5*50+50)strokeWeight(5);
     if(mouseY>6*50&& mouseY<6*50+50)strokeWeight(6);
     if(mouseY>7*50&& mouseY<7*50+50)strokeWeight(7);
     if(mouseY>8*50&& mouseY<8*50+50)strokeWeight(8);
  }else if(mouseX>450){
   if(mouseY>1*50&& mouseY<1*50+50)stroke(#FF0505);
     if(mouseY>2*50&& mouseY<2*50+50)stroke(#FFB005);
     if(mouseY>3*50&& mouseY<3*50+50)stroke(#D0FF05);
     if(mouseY>4*50&& mouseY<4*50+50)stroke(#05FF24);
     if(mouseY>5*50&& mouseY<5*50+50)stroke(#05DCFF);
     if(mouseY>6*50&& mouseY<6*50+50)stroke(#051BFF);
     if(mouseY>7*50&& mouseY<7*50+50)stroke(#7905FF);
     if(mouseY>8*50&& mouseY<8*50+50)stroke(#FF05EF); 
  }else line(mouseX,mouseY,pmouseX,pmouseY);
 }
}

沒有留言:

張貼留言