You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在P5.js中为多个圆形添加各自的线性渐变

在P5.js中为单个圆形添加专属线性渐变

P5.js无法通过普通fill()直接实现渐变填充,需要为每个圆形单独创建线性渐变对象,再将其作为填充样式应用。以下是修改后的示例代码,每个圆形都配有专属线性渐变:

function setup() {
    createCanvas(400, 400);
    noLoop(); // 生成静态画面
}

function draw() {
    background(color(0,0,0));
    noStroke();

    // 第一个圆形:水平线性渐变(亮黄到浅黄)
    let grad1 = createLinearGradient(20, 30, 40, 30);
    grad1.addColorStop(0, color(255,255,0));
    grad1.addColorStop(1, color(255,255,100));
    fill(grad1);
    circle(30, 30, 20);

    // 第二个圆形:垂直线性渐变(鲜红到暗红)
    let grad2 = createLinearGradient(100, 80, 100, 160);
    grad2.addColorStop(0, color(255,0,0));
    grad2.addColorStop(1, color(150,0,0));
    fill(grad2);
    circle(100, 120, 80);

    // 第三个圆形:对角线性渐变(深紫到粉紫)
    let grad3 = createLinearGradient(295, 255, 345, 305);
    grad3.addColorStop(0, color(255,0,255));
    grad3.addColorStop(1, color(255,100,255));
    fill(grad3);
    circle(320, 280, 50);
}

关键说明

  • createLinearGradient(x1, y1, x2, y2):定义渐变的起止坐标,坐标基于画布全局,需根据圆形的位置和尺寸调整(比如第一个圆的圆心在(30,30)、半径10,渐变起点设为(30-10,30)、终点设为(30+10,30),保证渐变覆盖整个圆形)
  • addColorStop(stop, color):添加渐变的颜色节点,stop取值范围0到1,0对应起点颜色,1对应终点颜色,可添加多个节点实现多色渐变
  • 每个圆形需单独创建渐变对象,避免填充样式相互覆盖

内容的提问来源于stack exchange,提问作者public9nf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:42:54