首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有更有效的方法在javascript中使用p5.js来将p5图形像素数组设置为与另一个相等?

有没有更有效的方法在javascript中使用p5.js来将p5图形像素数组设置为与另一个相等?
EN

Stack Overflow用户
提问于 2018-09-11 06:54:50
回答 1查看 296关注 0票数 2

我目前正在使用p5.js库开发一个爬山遗传算法程序。

该程序使用遗传算法格式来重建任何你想要的图像。它的工作原理类似于我在youtube上找到的this program视频。

我有一个基因类,它有一个名为'graphic‘的属性,一旦基因被创建,它就被设置为一个新的p5.raphic对象。

还有一个Population类,它有一个名为‘Gene’的属性,它是一个由10个基因对象组成的数组。Population类的方法getHealthiest()返回基因数组中的基因,该基因的图形看起来最像目标图像。此外,在Population类中,有一个evolve()方法。

这就是我的问题所在。在evolve()方法中,我想要1.确定最健康的基因,2.清空除最健康的基因之外的基因阵列,并用9个其他的基因重新填充它,这些基因是最健康的基因的变体。为此,我需要将新基因的图形属性设置为等于最健康基因的图形属性。

代码语言:javascript
复制
    this.evolve = function() {
        var healthiestGene = this.getHealthiest(); //sets a variable equal to the healthiest gene
        this.genes = []; //clearing out the genes array of the population
        for (var i=0; i < this.populationSize; i++) {
            this.genes[i] = new Gene(this.target); //creating a new Gene object

            //This is the problem area
            this.genes[i].graphic.loadPixels();
            for (var j=0; j < healthiestGene.numPixels; j++){
                this.genes[i].graphic.pixels[j] = healthiestGene.graphic.pixels[j];
            }
            this.genes[i].graphic.updatePixels();

            if (i!=0) {
                this.genes[i].mutate(); //I mutate every Gene in the array but one
            }
            this.genes[i].evaluateFitness();
        }
    }

目前,我通过将两个像素阵列逐个像素设置为相等来实现此目的,但我想知道是否有更有效的方法来实现此目的。我试着简单地写下:

代码语言:javascript
复制
this.genes[i].graphic.pixels = healthiestGene.graphic.pixels;

但这并没有起到任何作用。我很乐意建议我如何将这两个像素阵列设置为彼此相等,而不必逐个像素地遍历它们。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 07:06:31

您可能不希望将新实例设置为与旧实例相等,因为如果这样做,您对子实例所做的任何更改也会影响父实例。相反,您可能想要复制一份。

您可以创建一个新的图形实例,然后将旧实例绘制到新实例。如下所示:

代码语言:javascript
复制
var pg2 = createGraphics(pg.width, pg.height);
pg2.image(pg, 0, 0);

此时,pg2将包含pg最初拥有的所有内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52266518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档