2021年10月4日 星期一

ᐇ Week02

 Week02

第二周上了簡單互動指令,有mousePressed,mouse和pmouse,可以做基本的小畫家功能,for回圈運用

1.mousePressed指令切換背景顔色

mousePressed:滑鼠按下觸發

void setup(){

  size(500,500);

}

void draw(){

  if(mousePressed) background(255,0,0);//如果按下滑鼠背景色變色

  else background(0,255,0);

}

2.mousePressed畫綫

mousePressed還可以用來畫綫

void setup(){

  size(500,500);

}

void draw(){

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

}

3.mousePressed與pmouse畫綫

line可以用mouse和pmouse來畫出更加自由的圖案


void setup(){

  size(500,500);

}

void draw(){

  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);//現在滑鼠位置和之前滑鼠位置連綫

}

4.選擇筆觸顔色畫圖

根據mousePressed的位置調整筆觸顔色,實現小畫家的基本功能


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);

  }

}

5.選擇筆觸大小畫圖

根據mousePressed的位置調整筆觸大小,實現小畫家的基本功能


void setup(){

  size(500,500);

  rect(0,0,100,100); ellipse(50,50,8,8);//大小為8的圆

  rect(0,100,100,100); ellipse(50,150,4,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);

  }

}

6.加入for回圈的選擇筆觸大小畫圖

較爲不易理解,但行數更少


void setup(){

  size(500,500);

  for(int i=1;i<8;i++){//rect的y和ellipse的y還有大小隨i有槼律變化

    rect(0,i*50,50,50);

    ellipse(25,25+i*50,i,i);

  }

}

void draw(){

  if(mousePressed){

    if(mouseX<50){

      for(int i=1;i<8;i++){

        if(mouseY>i*50 && mouseY<i*50+50){

          strokeWeight(i);

        }

      }

    }else line(mouseX,mouseY,pmouseX,pmouseY);

  }

}

7.筆觸大小(非回圈)

簡單易懂,但寫的多


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);

}

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 line(mouseX,mouseY,pmouseX,pmouseY);

  }

}

8.筆觸顔色(非回圈)


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);

  }

}

9.筆觸顔色大小結合



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>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 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 line(mouseX,mouseY,pmouseX,pmouseY);

  }

}

沒有留言:

張貼留言