微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改嵌套循环中不同部分的笔触颜色

如何解决更改嵌套循环中不同部分的笔触颜色

我设法创建了3个“ for”循环,并为每个集合分配了不同的颜色。然后,我决定将3个“ for”循环组合到一个嵌套循环中以保持简洁,但是我无法让每个部分的颜色(线条的笔触)都发生变化(就像循环分开时的情况一样)。我想知道是否有人可以帮助我将颜色添加到1个嵌套循环中。

我有3个独立的for循环,因此您可以看到它的外观。然后我注释掉了要在最终代码中包含的代码(没有颜色的嵌套循环)。

let wallx = 200;
let wally = 200;

function setup() {
    createCanvas(1000,700);
}
function draw() {
    background(220);
    noLoop();

//This code combines the 3 'for' loops into a nested loop
// for(let i = 0; i <= 3; i++){
//     for (let j = 0; j < (wally+1); j += (wally) / 20) {
//         strokeWeight(3);
//         (line(0*(i+wallx),j,(wallx*i),j));
//     }
// }

    for (let i = 0; i < (wally+1); i += (wally) / 20) {
        stroke(0,255);
        strokeWeight(3);
        (line(0,i,(wallx),i));
} 
    for (let j = 0; j < (wally+1); j += (wally) / 20) {
        stroke(255,0);
        strokeWeight(3);
        (line(wally,(wallx*2),j));
}
    for (let k = 0; k < (wally+1); k += (wally) / 20) {
        stroke(0,255,0);
        strokeWeight(3);
        (line(wally*2,k,(wallx*3),k));
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/p5.min.js"></script>

解决方法

添加颜色数组

let colors = [color(255,0),color(255,255,color(0,255)];

根据stroke设置i颜色:

stroke(colors[i]);

修正画线:

line(0*(i+wallx),j,(wallx*i),j);

line(wally*i,(wallx*(i+1)),j);

let wallx = 200;
let wally = 200;

function setup() {
    createCanvas(1000,700);
}
function draw() {
    background(220);
    noLoop();

    let colors = [color(255,255)];
    for(let i = 0; i <= 3; i++){
        for (let j = 0; j < (wally+1); j += (wally) / 20) {
            stroke(colors[i]);
            strokeWeight(3);
            line(wally*i,j);
        }
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/p5.min.js"></script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。