2015年9月21日 星期一

02162411_劉永健_Week02


不斷線的小畫家
按下滑鼠才畫出來的小畫家

                                                                加上換背景顏色功能
左上角加入選色功能

void setup(){
  size(800,600);  //窗口大小
  background(255);//背景顏色
  stroke(#FF081c);  //筆畫顏色
}
void draw(){   
   fill(0,255,0); rect(0,0,100,100);   //左上角添加選色框
   fill(0,0,255); rect(0,100,100,100);
   fill(255,255,0); rect(0,200,100,100);
  
}

void mouseDragged(){
   line(mouseX,mouseY, pmouseX,pmouseY);   //滑鼠拖曳時畫線
}

void mousePressed(){
    if(mouseX<100 &&mouseY<100){stroke(0,255,0);}   //點選特定座標範圍換顏色
    else if(mouseX<100 &&mouseY<200){stroke(0,0,255);}
    else if(mouseX<100 &&mouseY<300){stroke(255,255,0);}
}

                                                            添加改變線條粗細功能

void setup(){
  size(800,600);
  background(255);
  stroke(#FF081c);
}
float mycucude=1;  宣告粗細
color myStroke=color(0);
void draw(){
   stroke(0);strokeWeight(1);
   fill(0,255,0); rect(0,0,100,100);
   fill(0,0,255); rect(0,100,100,100);
   fill(255,255,0); rect(0,200,100,100);
   stroke(myStroke);strokeWeight(mycucude);
}

void mouseDragged(){
   line(mouseX,mouseY, pmouseX,pmouseY);
}

void mousePressed(){
    if(mouseX<100 &&mouseY<100){myStroke=color(0,255,0);}
    else if(mouseX<100 &&mouseY<200){myStroke=color(0,0,255);}
    else if(mouseX<100 &&mouseY<300){myStroke=color(255,255,0);}
    if(mouseX>700) mycucude=mouseY/30;  //在x座標大於700時,根據Y座標大小改變粗細程度
}


點狀刮畫  (圖片自定義)

PImage imgBG;
PImage imgBlack;
void setup(){
  size(800,600);
  imgBG=loadImage("hei.jpg");
  imgBlack=createImage(800,600,ARGB);
  
  imgBlack.loadPixels();
  for(int i=0;i<imgBlack.pixels.length;i++){
    imgBlack.pixels[i]=color(0,0,0,255);
  }
  imgBlack.updatePixels();
}

void draw(){
  image(imgBG,0,0,width,height);
  image(imgBlack,0,0,width,height);
}
void mouseDragged(){
  imgBlack.loadPixels();
  imgBlack.pixels[mouseX+mouseY*width]=color(0,0,0,0);
  imgBlack.updatePixels();
}
  
  

生成的背景的刮畫(無法自定義)

void setup(){
  size(800,600);
  colorMode(HSB,800);
  background(0);
  strokeWeight(2);
}
void draw(){
  if(mousePressed){
    stroke(mouseX,mouseY,800);
    line(mouseX,mouseY,pmouseX,pmouseY);
  }
}




新方法
PImage imgBG;
PGraphics pgBlack;
void setup(){
  size(800,600);
  imgBG=loadImage("hei.jpg");
  imgBG.resize(800,600);
  pgBlack = createGraphics(800,600);
  pgBlack.beginDraw();
  pgBlack.background(0);
  pgBlack.strokeWeight(50);
  pgBlack.stroke(0,0,0,28);
  pgBlack.endDraw();
}

void draw(){
  background(0);
  imgBG.mask(pgBlack);
  if(keyPressed)image(pgBlack,0,0);
  else image(imgBG,0,0,width,height);
}
void mouseDragged(){
  pgBlack.beginDraw();
  pgBlack.strokeWeight(45);   pgBlack.stroke(255);
  pgBlack.line(mouseX,mouseY,pmouseX,pmouseY);
  pgBlack.endDraw();
}
 
 







沒有留言:

張貼留言