动态

详情 返回 返回

p5.js 線段的用法 - 动态 详情

線段是最基礎的圖形元素,就像畫畫時的 “線條”—— 用它可以勾勒輪廓、連接形狀,甚至組合出複雜的圖案。p5.js 的 line() 函數能輕鬆畫出線段,語法比原生 Canvas 要好理解多了。

認識 line ():線段的 “繪圖指令”

什麼是 line ()?

line() 是 p5.js 中用於繪製線段的函數,作用就像用直尺在兩點之間畫一條直線。它是最基礎的繪圖工具之一,也是組合複雜圖形的 “積木”—— 比如畫正方形需要 4 條線段,畫三角形需要 3 條線段。

核心語法:4 個參數畫一條線

在 2D 模式下,line() 只需要 4 個參數就能畫一條線段:

line(x1, y1, x2, y2)

參數解釋

  • x1, y1:線段起點的座標(比如 “從畫布左邊 100 像素、上邊 50 像素的位置開始”)
  • x2, y2:線段終點的座標(比如 “到畫布左邊 200 像素、上邊 150 像素的位置結束”)

舉個例子:line(50, 30, 200, 100) 會畫出一條從 (50,30) 到 (200,100) 的線段。

線段的 “特性”

  • 線段沒有 “填充色”:fill() 函數對線段無效(線段只有輪廓,沒有內部)。
  • 樣式靠這兩個函數:用 stroke(顏色) 設線段顏色,strokeWeight(粗細) 設線段寬度。
  • 3D 模式可選:如果想畫 3D 線段,需要用 6 個參數(x1,y1,z1,x2,y2,z2),入門階段先掌握 2D 即可。

第一條線段

從最簡單的例子開始,感受 line() 的用法,再逐步添加樣式。

基礎線段繪製

function setup() {
  createCanvas(400, 300); // 創建400×300的畫布
  background(240); // 淺灰色背景
}

function draw() {
  // 畫一條從左上角到右下角的線段
  line(50, 50, 350, 250);
}

淺灰色畫布上,會出現一條默認黑色、細線條的線段,從 (50,50) 斜着延伸到 (350,250)。起點 (50,50) 是畫布左上方的位置,終點 (350,250) 是右下方的位置,線段自然斜向右下方。

給線段 “換衣服”(設置樣式)

線段默認是黑色細線條,用 stroke()strokeWeight() 可以改變它的 “外觀”:

function setup() {
  createCanvas(400, 300);
  background(240);
  noLoop(); // 只畫一次,不重複刷新
}

function draw() {
  // 1. 紅色粗線段(寬度5像素)
  stroke(255, 0, 0); // 紅色(RGB值)
  strokeWeight(5); // 線段粗細5像素
  line(50, 80, 350, 80); // 水平線段(y座標相同)

  // 2. 藍色中等粗細線段(寬度3像素)
  stroke(0, 0, 255); // 藍色
  strokeWeight(3);
  line(50, 140, 350, 140);

  // 3. 綠色細線段(寬度1像素,默認)
  stroke(0, 255, 0); // 綠色
  strokeWeight(1);
  line(50, 200, 350, 200);
}

三條水平線段從上到下排列,分別是紅色粗線、藍色中線、綠色細線,清晰展示樣式差異。

  • stroke(r, g, b):通過 RGB 顏色值設置線段顏色(0-255,比如純紅是 (255,0,0))
  • strokeWeight(數值):數值越大,線段越粗(默認 1 像素)
  • 水平線段的秘訣:起點和終點的 y 座標相同(比如都是 80),x 座標不同

用線段組合簡單圖形

線段的真正力量在於 “組合”—— 幾條線段能拼出矩形、三角形等基礎圖形:

function setup() {
  createCanvas(400, 300);
  background(255); // 白色背景
  noLoop();
}

function draw() {
  stroke(0); // 黑色線段
  strokeWeight(2);

  // 1. 畫三角形(3條線段)
  line(100, 100, 180, 200); // 左邊
  line(180, 200, 20, 200); // 底邊
  line(20, 200, 100, 100); // 右邊
  text("三角形(3條線段)", 40, 240);

  // 2. 畫矩形(4條線段)
  line(220, 100, 350, 100); // 上邊
  line(350, 100, 350, 200); // 右邊
  line(350, 200, 220, 200); // 下邊
  line(220, 200, 220, 100); // 左邊
  text("矩形(4條線段)", 240, 240);
}

白色畫布上,左邊是三角形,右邊是矩形,都是用黑色線段拼出的輪廓。

  • 三角形:3 條線段首尾相連(A→B,B→C,C→A)
  • 矩形:4 條線段,相鄰邊垂直(上邊水平,右邊垂直)

線段的動態效果

線段不僅能畫靜態圖形,結合 draw() 函數的自動刷新(每秒 60 次),還能做出動態效果 —— 比如移動的線條、跟隨鼠標的線條。

跟隨鼠標的 “追蹤線”

讓線段的一端固定,另一端跟隨鼠標移動,形成實時追蹤效果:

function setup() {
  createCanvas(400, 300);
  background(240);
}

function draw() {
  background(240); // 每次刷新畫布,清除上一幀軌跡
  stroke(139, 69, 19); // 棕色線段
  strokeWeight(3);

  // 線段起點固定在(200,150),終點是鼠標位置
  line(200, 150, mouseX, mouseY);

  // 顯示提示文字
  fill(0);
  noStroke(); // 文字無輪廓
  text("移動鼠標試試", 20, 20);
}

一條棕色線段從畫布中心出發,另一端始終跟着鼠標移動,像 “指針” 一樣追蹤鼠標位置。

  • mouseXmouseY 是 p5.js 的內置變量,實時獲取鼠標的 x、y 座標
  • background(240) 每次刷新畫布,避免留下之前的線段軌跡
  • 線段的終點隨鼠標座標變化,形成動態效果

以上就是本文的全部內容啦,想了解更多 P5.js 用法歡迎關注 《P5.js中文教程》。

也可以➕我 green bubble 吹吹水咯

點贊 + 關注 + 收藏 = 學會了

user avatar openfuyao 头像 u_15591470 头像 u_15316473 头像 u_15641375 头像 lab4ai 头像 explinks 头像 weidejianpan 头像 liudamao 头像 jihu_gitlab 头像 huamingshixunkeji 头像 cason6810 头像
点赞 11 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.