2019年9月26日 星期四

~~~week03

互動技術
1.用P語言寫出一個可以畫圖的程式
程式
void setup(){
  size(800,600);
}
void draw(){
line(mouseX,mouseY,pmouseX,pmouseY);

}

2.按下滑鼠才會畫

程式
void setup(){
  size(800,600);
}
void draw(){
  int nowX=mouseX,nowY=mouseY;
  if(mousePressed&&mouseButton==LEFT)
  { 
line(mouseX,mouseY,pmouseX,pmouseY);
}

}

3.線上會有橢圓形
程式
void setup(){
  size(800,600);
}
void draw(){
ellipse(mouseX,mouseY,3,3); 
line(mouseX,mouseY,pmouseX,pmouseY);
}

4.按鍵盤1/2/3可以改顏色,4/5可以改粗細
程式
void setup(){
  size(800,600);
}
void draw(){
  if(key=='1') stroke(255,0,0);
  if(key=='2') stroke(255,255,0);
  if(key=='3') stroke(0,255,0);
  if(key=='4') strokeWeight(4);
  if(key=='5') strokeWeight(10);
ellipse(mouseX,mouseY,3,3); 
line(mouseX,mouseY,pmouseX,pmouseY);
}

4.可以從旁邊的色塊改變線的顏色
程式
void setup(){
  size(600,400);
  fill(255,0,0); rect(0,0,50,50);
  fill(255,255,0); rect(0,50,50,50);
  fill(0,255,0); rect(0,100,50,50);
  fill(0,255,255); rect(0,150,50,50);
  fill(0,0,255); rect(0,200,50,50);
}
void draw(){
  if(mouseX<50 && mousePressed){
    if(mouseY<50) stroke(255,0,0);
    else if(mouseY<100) stroke(255,255,0);
    else if(mouseY<150) stroke(0,255,0);
    else if(mouseY<200) stroke(0,255,255);
    else if(mouseY<250) stroke(0,0,255);
    else{
      strokeWeight((mouseY-250)/10);
    }
  }
 if(mouseX>50&&mousePressed){
   line(pmouseX,pmouseY,mouseX,mouseY);
 }
}

5.可以從旁邊改顏色與粗細
程式
void setup(){
  size(600,400);
  fill(255,0,0); rect(0,0,50,50);
  fill(255,255,0); rect(0,50,50,50);
  fill(0,255,0); rect(0,100,50,50);
  fill(0,255,255); rect(0,150,50,50);
  fill(0,0,255); rect(0,200,50,50);
  line(25,250,25-7,400);//調粗細
  line(25,250,25-7,400);//條粗細
}
void draw(){
  if(mouseX<50 && mousePressed){
    if(mouseY<50) stroke(255,0,0);
    else if(mouseY<100) stroke(255,255,0);
    else if(mouseY<150) stroke(0,255,0);
    else if(mouseY<200) stroke(0,255,255);
    else if(mouseY<250) stroke(0,0,255);
    else{
      strokeWeight((mouseY-250)/10);
    }
  }
 if(mouseX>50&&mousePressed){
   line(pmouseX,pmouseY,mouseX,mouseY);
 }
}

6.可以更改顏色與粗細,當按上下左右鍵時分別會自動畫一條往上,往左,往右,往下的線將視窗分成四格
程式
void setup(){
  size(600,400);
  fill(255,0,0); rect(0,0,50,50);
  fill(255,255,0); rect(0,50,50,50);
  fill(0,255,0); rect(0,100,50,50);
  fill(0,255,255); rect(0,150,50,50);
  fill(0,0,255); rect(0,200,50,50);
  line(25,250,25-7,400);
  line(25,250,25-7,400);
}
void draw(){
  if(mouseX<50 && mousePressed){
    if(mouseY<50) stroke(255,0,0);
    else if(mouseY<100) stroke(255,255,0);
    else if(mouseY<150) stroke(0,255,0);
    else if(mouseY<200) stroke(0,255,255);
    else if(mouseY<250) stroke(0,0,255);
    else{
      strokeWeight((mouseY-250)/10);
    }
  }
 if(mouseX>50&&mousePressed){
   line(pmouseX,pmouseY,mouseX,mouseY);
 }
}
void mouseDragged(){
  if(mouseX>50){
    line(pmouseX,pmouseY,mouseX,mouseY);
  }
}
void keyPressed(){
  if(key=='1') stroke(255,0,0);
  if(keyCode==UP) line(300,200,300,0);
  if(keyCode==DOWN) line(300,200,300,400);
  if(keyCode==LEFT) line(300,200,0,200);
  if(keyCode==RIGHT) line(300,200,600,200);
}




沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...