【问题标题】:Multiple Images as Shapes in Particles.js多个图像作为 Particles.js 中的形状
【发布时间】:2015-08-11 10:25:41
【问题描述】:

我正在使用 Particles.js(请参阅此处:https://github.com/VincentGarreau/particles.js/http://vincentgarreau.com/particles.js/)进行设计项目。

是否可以将多个图像作为“形状”,不同的“image.src”?如果是这样,我该怎么做?

谢谢

【问题讨论】:

    标签: javascript particles particle-system


    【解决方案1】:

    是的,这是可能的。请参阅https://www.josh.ai/(这不是我的网站,但它可以满足您的需求)。

    看源码,但更具体地说,我认为他修改了particles.js文件:https://www.josh.ai/static/js/particles.min.js

    看看这部分代码:

    switch (i.canvas.ctx.fillStyle = n, i.canvas.ctx.beginPath(), a.shape) {
                case "circle":
                    i.canvas.ctx.arc(a.x, a.y, t, 0, 2 * Math.PI, !1);
                    break;
                case "edge":
                    i.canvas.ctx.rect(a.x - t, a.y - t, 2 * t, 2 * t);
                    break;
                case "triangle":
                    i.fn.vendors.drawShape(i.canvas.ctx, a.x - t, a.y + t / 1.66, 2 * t, 3, 2);
                    break;
                case "polygon":
                    i.fn.vendors.drawShape(i.canvas.ctx, a.x - t / (i.particles.shape.polygon.nb_sides / 3.5), a.y - t / .76, 2.66 * t / (i.particles.shape.polygon.nb_sides / 3), i.particles.shape.polygon.nb_sides, 1);
                    break;
                case "star":
                    i.fn.vendors.drawShape(i.canvas.ctx, a.x - 2 * t / (i.particles.shape.polygon.nb_sides / 4), a.y - t / 1.52, 2 * t * 2.66 / (i.particles.shape.polygon.nb_sides / 3), i.particles.shape.polygon.nb_sides, 2);
                    break;
                case "image":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    r && e()
                    break;
                case "image2":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex2a.png';
                    r = element;
                    r && e()
                    break;
                case "image3":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex3a.png';
                    r = element;
                    r && e()
                    break;
                 case "image4":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex4a.png';
                    r = element;
                    r && e()   
                    break;
                case "image5":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex5a.png';
                    r = element;
                    r && e()
                    break;
                case "image6":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex6a.png';
                    r = element;
                    r && e()
                    break;
                 case "image7":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex7a.png';
                    r = element;
                    r && e() 
                    break;
                case "image8":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex8a.png';
                    r = element;
                    r && e()
                    break;
                case "image9":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex9a.png';
                    r = element;
                    r && e()
                    break;
                 case "image10":
                    if ("svg" == i.tmp.img_type) var r = a.img.obj;
                    else var r = i.tmp.img_obj;
                    var element = document.createElement('img');
                    element.src = 'https://s3.amazonaws.com/josh.ai/hex10a.png';
                    r = element;
                    r && e() 
            }
    

    image1、image2 等的每个案例都链接到不同的 png 文件。如果您仍然感兴趣,我认为查看那个人的代码应该会让您有所收获。

    【讨论】:

    • 这是如何使用的?你展示了变化发生的地方,但是你的 json 看起来如何创建多个图像?
    • 该链接不再相关。我不知道我当时在想什么。它与当时 OP 想要的东西(以及我如何发现如何去做)有关,因此我决定分享。对于上下文,代码基本上替换了缩小的particle.min.js 中的switch 语句,最新版本是here。如果我没有提供任何帮助,我深表歉意,但我记得的就这么多了。
    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2019-10-10
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多