Esta macro fue publicada originalmente en el foro de usuarios de pov-ray en Agosto de 2011 y es una sencilla modificación de la macro incluida en “colors.inc” para pasar de RGB a HSV. Esta macro devuelve el pigmento situado a “A” grados del pigmento de entrada en la rueda cromática. Es válida para calcular colores complementarios. triadas de color, etc…
Descargar (botón derecho y “Guardar enlace como”): CW_angle.mcr
/*
Takes a pigment as input and returns the pigment placed
at A degrees in the cromatic wheel
pigment {CW_angle(Red,180} // returns cyan
pigment {CW_angle(Red,120} // returns green
pigment {CW_angle(Red,240} // returns blue
*/
#macro CW_angle (COLOR,A)
#local RGBFT = color COLOR;
#local R = (RGBFT.red);
#local G = (RGBFT.green);
#local B = (RGBFT.blue);
#local Min = min(R,min(G,B));
#local Max = max(R,max(G,B));
#local Span = Max-Min;
#local H = CRGB2H (<R,G,B>, Max, Span);
#local S = 0; #if (Max!=0) #local S = Span/Max; #end
#local P = <H+A,S,Max,(RGBFT.filter),(RGBFT.transmit)> ;
#local HSVFT = color P ;
#local H = (HSVFT.red);
#local S = (HSVFT.green);
#local V = (HSVFT.blue);
#local SatRGB = CH2RGB(H);
#local RGB = ( ((1-S)*<1,1,1> + S*SatRGB) * V );
rgb <RGB.red,RGB.green,RGB.blue,(HSVFT.filter),
(HSVFT.transmit)>
#end
|
Enlaces recomendados:
- Teoría del color
- Círculo Cromático
- Repaso a la teoría del color.
pd. Gracias al usuario Alain del foro de usuarios de Pov-ray por su ayuda.

