Hice un programa del Día de las Madres Felices que involucraba texto que cambiaba lentamente de color. Estoy usando HSB y cambié lentamente el valor de Hue hasta que llegué a 255 y luego volví a 0. Pero esto no parece dar la transición de color suave que estoy buscando.
Esto es básicamente lo que estoy haciendo:
fill(clamp(frameCount*0.2, 255), 255, 255); function clamp(c, cap){ do { c -= cap } while ( c > cap ); return c }Programa completo: https://editor.p5js.org/KoderM/sketches/RekPOFctj
¿Alguien sabe cómo obtener un efecto de arco iris suave con valores de color HSB?
Uno de los problemas con el código no se mostró. Es la llamada colorMode , que se configuró en el colorMode(HSB) predeterminado, que, como dicen los documentos :
De forma predeterminada, este es
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> También puede usar colorMode(HSB, 255); y anule el valor predeterminado, luego use fill(frameCount % 255, 255, 255); (con escalado opcional si se desea).
Además, la sujeción no es realmente el concepto correcto. Ese es tradicionalmente un algoritmo mínimo/máximo, pero en realidad queremos volver a 0.