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