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

P5.js如何限制图形仅在指定边界区域内绘制显示

解决方案

p5.js 内置的clip() 方法可以完美满足你的需求,无需额外叠加遮挡图层,且支持多区域重复调用。

实现逻辑如下:

  • 用push()和pop()配对包裹裁剪相关逻辑,隔离作用域,避免影响画布其他区域的绘制
  • 先定义作为裁剪边界的正方形路径,调用clip()应用裁剪规则
  • 裁剪生效后绘制的所有图形,仅会保留裁剪路径内部的部分,外部区域的内容会自动隐藏,不需要额外做遮挡处理

修改后的完整代码:

function setup() {
  createCanvas(400, 400);
  noLoop();
}

function draw() {
  background(220);
  noFill();
  translate(100, 100);

  // 隔离裁剪作用域
  push();
  // 定义裁剪用的正方形路径
  beginShape();
  vertex(-25, -25);
  vertex(75, -25);
  vertex(75, 75);
  vertex(-25, 75);
  endShape(CLOSE);
  // 应用裁剪,后续绘制仅保留正方形内部内容
  clip();

  // 绘制100个圆形
  for (var i = 0; i < 100; i++) {
    var circleX = random(2, 50);
    var circleY = random(2, 50);
    circle(circleX, circleY, 100);
  }
  // 结束裁剪作用域,后续绘制不受影响
  pop();

  // 绘制红色边界正方形
  stroke("red");
  square(-25, -25, 100);
}

如果需要在画布其他位置重复实现该效果,只需要在对应坐标位置重复这套push→定义裁剪路径→clip→绘制内容→pop的逻辑即可,不同裁剪区域之间不会互相干扰。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:39:04