HSB 平滑的颜色过渡
HSB smooth color transition
我制作了一个“母亲节快乐”程序,其中包含文字缓慢变化的颜色。我正在使用 HSB,并慢慢改变色调值,直到我达到 255,然后跳回 0。但这似乎并没有提供我正在寻找的平滑颜色过渡。
这基本上就是我正在做的事情:
fill(clamp(frameCount*0.2, 255), 255, 255);
function clamp(c, cap){
do { c -= cap } while ( c > cap );
return c
}
完整节目:https://editor.p5js.org/KoderM/sketches/RekPOFctj
有人知道如何使用 HSB 颜色值获得平滑的彩虹效果吗?
代码的一个问题没有显示出来。这是 colorMode
调用,它被设置为默认值 colorMode(HSB)
,与 docs say:
By default, this is colorMode(HSB, 360, 100, 100, 1)
function setup() {
createCanvas(windowWidth, windowHeight);
colorMode(HSB);
}
function draw() {
fill(frameCount % 360, 100, 100);
rect(0, 0, windowWidth, windowHeight);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/p5.js"></script>
您也可以使用 colorMode(HSB, 255);
并覆盖默认值,然后使用 fill(frameCount % 255, 255, 255);
(如果需要,可选择缩放)。
此外,钳位并不是真正正确的概念。传统上这是一个 min/max 算法,但我们实际上想要返回到 0.
我制作了一个“母亲节快乐”程序,其中包含文字缓慢变化的颜色。我正在使用 HSB,并慢慢改变色调值,直到我达到 255,然后跳回 0。但这似乎并没有提供我正在寻找的平滑颜色过渡。
这基本上就是我正在做的事情:
fill(clamp(frameCount*0.2, 255), 255, 255);
function clamp(c, cap){
do { c -= cap } while ( c > cap );
return c
}
完整节目:https://editor.p5js.org/KoderM/sketches/RekPOFctj
有人知道如何使用 HSB 颜色值获得平滑的彩虹效果吗?
代码的一个问题没有显示出来。这是 colorMode
调用,它被设置为默认值 colorMode(HSB)
,与 docs say:
By default, this is
colorMode(HSB, 360, 100, 100, 1)
function setup() {
createCanvas(windowWidth, windowHeight);
colorMode(HSB);
}
function draw() {
fill(frameCount % 360, 100, 100);
rect(0, 0, windowWidth, windowHeight);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/p5.js"></script>
您也可以使用 colorMode(HSB, 255);
并覆盖默认值,然后使用 fill(frameCount % 255, 255, 255);
(如果需要,可选择缩放)。
此外,钳位并不是真正正确的概念。传统上这是一个 min/max 算法,但我们实际上想要返回到 0.