Вы можете использовать HSB colorMode
.Это позволяет вам «циклически» проходить через цветовое колесо с помощью чисел от 0 до 360 (т. Е. Указывать градусы на цветовом круге).Используя эту идею, вы можете нарисовать много прямоугольников на холсте, охватывающих от верха холста до низа (количество прямоугольников, заданное inc
).Каждый прямоугольник будет иметь определенный цвет.Таким образом, объединение всех этих прямоугольников позволит вам создать эффект, подобный градиенту.
Постоянно предоставляя смещение для вашего цвета (и ограничивая его в пределах границ или от 0 до 360), вы можете циклически перемещаться по цветовому колесу..
См. Код ниже:
function setup() {
createCanvas(400, 400);
}
let cOffset = 0;
function draw() {
const inc = height/100;
colorMode(HSB);
for(let y = 0; y < height; y += inc) {
let h = y / height * 360;
fill(abs(h-cOffset)%360, 100, 100);
noStroke();
rect(0, y-inc, width, y);
}
cOffset += 5;
}
См. Рабочую версию здесь:
https://editor.p5js.org/NickParsons/sketches/1xfjY-ZoE