該畫筆當快速劃過的時候,畫筆的線條變粗,慢慢劃過的時候,線條變細。
主要經過下面的speed實現,x是mouseX,y是mouseY,px是pmouseX,py是pmouseY, 也就是和當前這一幀鼠標的位置以及前一幀鼠標的位置。滑動地越快,兩點距離越大,因此strokeWeight
也就越大。spa
float speed = abs(x-px) + abs(y-py); strokeWeight(speed);
全部代碼:code
int count=0; int increment=1; void setup() { size(640, 360); background(255); fill (255,255,255); smooth(); } void draw() { drawLine(mouseX, mouseY, pmouseX, pmouseY); } void drawLine(int x, int y, int px, int py) { if (mousePressed==true) { count=count+increment; } if (count>25){ increment = -1; } if (count<=0){ increment = 1; } float speed = abs(x-px) + abs(y-py); strokeWeight(speed); line(x, y, px, py); stroke(count*3,count*8,count*10); } void keyPressed(){ if (key == ' '){ background(255); } }
另外,當按住鼠標的時候,有個count
變量一直在變化,影響到stroke
,也就是畫筆顏色,當鬆開鼠標的時候,顏色就不會變化。rem
最後還添加了若是按下空格鍵,就清屏的代碼:it
void keyPressed(){ if (key == ' '){ background(255); }