Rueda cromática

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:

pd. Gracias al usuario Alain del foro de usuarios de Pov-ray por su ayuda.

 
This entry was posted in Macros and tagged , . Bookmark the permalink.

Comments are closed.