RE: RGB color cube & HLS color cone
- To: mathgroup at smc.vnet.net
- Subject: [mg19747] RE: [mg19706] RGB color cube & HLS color cone
- From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
- Date: Wed, 15 Sep 1999 03:53:01 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Dick Phillips wrote: --------------------- Has anyone developed code to display a 3D RGB color cube and/or a 3D HLS color cone? I'd like to be able to rotate, slice, etc. such objects. --------------------- REPLY: I am working on a package that does much of this. The package includes four functions ColorWheel, ColorPlot, ColorScale, GetColor. ColorWheel[] makes a wheel of colors with the specification Hue[h,s,1]. The colors approach white in the center. ColorWheel[CenterColor->"Black"] makes a wheel of colors where the colors approach black in the center. --------------------- The lines below make a Graphic of the colors in the range specified. You can use ColorPlot to zoom in on a small range of colors. ColorPlot has a PlotPoints option, and the graphic looks like a continuum if PlotPoints->60 is used. You can click on the graphic and use the mouse to get precise (r,g,b) or (h,s,b) values of any color displayed. ColorPlot[RGBColor[r,g,0.7],{r,0.7,1},{g,0,6,0.8}] ColorPlot[RGBColor[r,0.7,b],{r,0.7,1},{b,0,6,0.8}] ColorPlot[RGBColor[0.7,g,b],{g,0.7,1},{b,0,6,0.8}] ColorPlot[Hue[h,s,0.7],{h,0.7,1},{s,0,6,0.8}] ColorPlot[Hue[h,0.7,b],{h,0.7,1},{b,0,6,0.8}] ColorPlot[Hue[0.7,s,b],{s,0.7,1},{b,0,6,0.8}] -------------------- ColorScale shows all the shades along a "straight line" between one color and another. It works with Hue and RGBColor as in: gr1=ColorScale[RGBColor[0.7,0.8,0.25], RGBColor[0.85,0.77,0.35]]; gr2=ColorScale[Hue[0.45,0.25,0.9],Hue[0.55,0.2,1]]; The strip of colors shown by ColorScale includes a horizontal axis with tick marks (the colors start at 0 and stop at 1). GetColor takes two arguments. The first argument must be the graphic returned by ColorScale, and the second argument must be a number between 0 and 1. Using the line below GetColor returns the color at 0.2 on the graphic ColorScale displays. In[12]:= GetColor[gr2, 0.2] Out[1]= Hue[0.47,0.24,0.92] I will email it to you later this week after I do a little more work on it I. If anyone else wants it let me know. Eventually I will send it to MathSource. -------------------- Regards, Ted Ersek For Mathematica tips, tricks see http://www.dot.net.au/~elisha/ersek/Tricks.html