gpt4 book ai didi

javascript - 如何在 PaperJS 中将图像添加到路径

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:34 24 4
gpt4 key购买 nike

我正在玩弄来自 http://paperjs.org/examples/candy-crash/ 的漂亮代码.我想用图像替换颜色,这样它就不会显示红色圆圈,而是显示一个内部有图像的圆圈。这是我认为需要修改的片段:

function Ball(r, p, v) {
this.radius = r;
this.point = p;
this.vector = v;
this.maxVec = 15;
this.numSegment = Math.floor(r / 3 + 2);
this.boundOffset = [];
this.boundOffsetBuff = [];
this.sidePoints = [];
this.path = new Path({
fillColor: {
hue: Math.random() * 360,
saturation: 1,
brightness: 1
},
blendMode: 'screen'
});

for (var i = 0; i < this.numSegment; i ++) {
this.boundOffset.push(this.radius);
this.boundOffsetBuff.push(this.radius);
this.path.add(new Point());
this.sidePoints.push(new Point({
angle: 360 / this.numSegment * i,
length: 1
}));
}
}

我也在阅读光栅。但我不知道如何得到这个 code处理图像。感谢您的帮助。

如果我只是简单地执行 this.path = new Path(raster) 它不起作用。它只显示一张静态图像,而不是所有移动的圆圈。

更新

这是要使用的栅格

var imgUrl ="http://upload.wikimedia.org/wikipedia/commons/1/15/Red_Apple.jpg";
var raster = new Raster();
raster.scale(0.2)

最佳答案

如果你想用路径剪辑一个光栅,你需要创建一个包含两个对象的组,然后设置group.clipped 属性为 true。将 raster 作为 path 构造函数的参数传递将不起作用。

在“主”循环中执行此操作最简单。

//--------------------- main ---------------------

var balls = [];

// ADD AN ARRAY TO HOLD SOME RASTERS

var rasters = [];
var raster = new Raster("http://upload.wikimedia.org/wikipedia/commons/1/15/Red_Apple.jpg");
raster.scale(.05);
var numBalls = 18;
for (var i = 0; i < numBalls; i++) {
var position = Point.random() * view.size;
var vector = new Point({
angle: 360 * Math.random(),
length: Math.random() * 10
});
var radius = Math.random() * 60 + 60;
balls.push(new Ball(radius, position, vector));

// ADD RASTERS AND CLIP TO EACH "BALL"

rasters.push(raster.clone().scale(radius/50));
var group = new Group(balls[i].path, rasters[i]);
group.clipped = true;
}
raster.remove();

function onFrame() {
for (var i = 0; i < balls.length - 1; i++) {
for (var j = i + 1; j < balls.length; j++) {
balls[i].react(balls[j]);
}
}
for (var i = 0, l = balls.length; i < l; i++) {
balls[i].iterate();
rasters[i].position = balls[i].path.position;
}
}

关于javascript - 如何在 PaperJS 中将图像添加到路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com