# 第 2 章 【 基礎繪製與色彩 】程式框架 - p5.js 開發入門 > Date:2022/11/30 > 使用 open processing 平台 ## 初始設定 setup() - setup(){內容} 初始設定,**只會繪製一次** ```javascript= function setup() { createCanvas(windowWidth, windowHeight); background(100); } ``` ## 不斷繪製 draw() 把想畫的程式碼放在這段中,放置在 draw 中的程式碼都會**不斷的繪製**疊加上去 ```javascript= function draw() { // 你的程式碼 circle(mouseX, mouseY, 20); } ``` ## 畫布設定 createCanvas(寬, 高); :arrow_right: 設定畫布 寬 高 ## 基本圖案 - 圓形 ```javascript= // 是算與「圓心」的距離多少 circle(左側距離, 上面距離, 直徑); circle(10, 10, 20); ``` - 橢圓 ```javascript= // 是算與「圓心」的距離多少 ellipse(左側距離, 上面距離, 寬, 高); ellipse(10, 10, 20, 20); ``` ## 填色 fill(顏色數值) ```javascript= fill(100) fill(255, 200, 0); fill(100, 20) // 數值,透明度 ``` ## 背景色 background(顏色數值); :arrow_right: 顏色類別: - 單一數值 (100) - RGB 數值 (255,200,0) - 數值, 透明度 (100, 20) - 色碼 ("#FFD48E"),要用引號包住 補充: - [色碼 chrome 擴充套件](https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=zh-TW) - [Popular Color Palettes](https://www.color-hex.com/color-palettes/popular.php) - [twitter 搜尋 #p5js 等相關標籤](https://twitter.com/hashtag/p5js) - [The Coding Train](https://www.youtube.com/@TheCodingTrain) background() 可以放在 setup() 或是 draw() 區域中 ### 放在 setup() 成為最一開始的畫布底色 ### 放在 draw() 單一顏色 :arrow_right: 不會有滑鼠軌跡 ```javascript= background(100); ``` 顏色,設定透明度 :arrow_right: 有滑鼠軌跡,但是有被透明背景覆蓋(變黯淡) ```javascript= background(100, 20); ``` ## 變動數值 ### 滑鼠左側和上面距離 要讓圖案某數值隨著滑鼠位置變化,使用 mouseX、mouseY 例如:讓橢圓的位置跟著滑鼠變動 ```javascript= ellipse(mouseX, mouseY, 50,50); ``` ### frameCount 幀數 :arrow_right: 執行後總共畫了幾次 用 print() 來看目前frameCount 次數 ```javascript= print(frameCount); ``` ## 框線 stroke(顏色數值) strokeWeight(框線粗度) ```javascript stroke(255, 204, 0); strokeWeight(4); ``` ## 偵測滑鼠行為 滑鼠有無被點按 :arrow_right: mouseIsPressed ```javascript= if (mouseIsPressed){ fill(mouseX, mouseY, frameCount); ellipse(mouseX, mouseY, 100, 100); } ``` ## 實際應用範例 ```javascript= function setup() { createCanvas(500,500); } function draw() { background(100, 2); stroke(255, 0, 0); strokeWeight(20); fill(mouseX, mouseY, frameCount); // print(frameCount); ellipse(mouseX, mouseY, 100, 100); } ``` ## cheatSheet ![](https://i.imgur.com/ziL8NQI.png) ## 快捷鍵 Mac:將 ctrl 代換成 ⌘ cmd 即可 | 功能 | 快捷鍵 | |:---------------------- |:------------------------- | | 關鍵字搜尋 | Ctrl + F | | 多重選取關鍵字 | Ctrl + D | | 往左 or 右移動一個單字 | Alt + 左右 | | 往左 or 右刪除一個單字 | Alt + Delete / Backspace | | 移動到句首 or 句尾 | Ctrl + 左右 | | 往左 or 右刪除一整行 | Ctrl + Delete / Backspace | | 增加 / 減少縮排 | Tab / Shift + Tab | | 執行 Code | Ctrl + enter | ## VS Code plugin 擴充套件 - Live Server