如何用图像填充P5.js形状 [英] How to Fill P5.js Shape with an Image

查看:0
本文介绍了如何用图像填充P5.js形状的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已使用eginShapeendShapecurveVertex创建了一个形状。我的代码如下所示:

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

function draw() {
 background(220);

 strokeWeight(5);
 point(84, 91);
 point(68, 19);
 point(21, 17);
 point(32, 91);
 strokeWeight(1);

 fill(0); // HOW TO FILL WITH IMAGE
 beginShape();
 curveVertex(84, 91);
 curveVertex(84, 91);
 curveVertex(68, 19);
 curveVertex(21, 17);
 curveVertex(32, 91);
 curveVertex(32, 91);
 endShape(CLOSE);
}

我不想用颜色填充形状,而是想用图像填充它。P5.js可以吗?

推荐答案

您可以使用mask()函数来完成。在您的示例中,创建一个图形对象并绘制所需的形状,然后将其用作图像的蒙版:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
let img
let shape 

function preload(){
 img = loadImage('https://picsum.photos/100')
}

function setup() {
 createCanvas(300, 100);
 
 // Create new p5 graphics object
 shape = createGraphics(100, 100);
 
 background(220);

 // Draw the shape
 shape.strokeWeight(5);
 shape.point(84, 91);
 shape.point(68, 19);
 shape.point(21, 17);
 shape.point(32, 91);
 shape.strokeWeight(1);

 shape.fill(0);
 shape.beginShape();
 shape.curveVertex(84, 91);
 shape.curveVertex(84, 91);
 shape.curveVertex(68, 19);
 shape.curveVertex(21, 17);
 shape.curveVertex(32, 91);
 shape.curveVertex(32, 91);
 shape.endShape(CLOSE);
 
 image(img, 0, 0)
 image(shape, 100, 0)
 
 // Use the shape as a mask
 img.mask(shape)
 
 image(img, 200, 0)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.10.2/p5.min.js"></script>

这篇关于如何用图像填充P5.js形状的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆