Documentation |
Surface filling types
Objects | FillColorType Default Values |
---|---|
plot::Cylindrical, plot::Density, plot::Dodecahedron, plot::Function3d, plot::Hexahedron, plot::Icosahedron, plot::Implicit3d, plot::Matrixplot, plot::Octahedron, plot::Prism, plot::Pyramid, plot::Spherical, plot::Surface, plot::SurfaceSet, plot::SurfaceSTL, plot::Sweep, plot::Tetrahedron, plot::Tube, plot::XRotate, plot::ZRotate | Dichromatic |
plot::Arc3d, plot::Ellipse3d, plot::Parallelogram3d, plot::Waterman | Flat |
FillColorType selects the type of surface fill color used.
With the exception of Flat and Functional, the coloring schemes depend on the height, i.e., the z value of points on the surface, in relation to the height of the whole coordinate system. (Everything on this page relating to surfaces holds for objects of type plot::Density, too, with the values plotted replacing height information.)
By default, surfaces are drawn with a linear blend from FillColor to FillColor2. This behavior may be changed with FillColorType, using one of the following options:
Dichromatic
The default just described.
Flat
The surface is filled with FillColor. No blend is used.
Monochrome
The surface is filled with a blend from FillColor to a dimmed version of FillColor.
Rainbow
This setting is technically similar to Dichromatic, but the effect is vastly different, since interpolation takes place in HSV color space. This creates a rainbow effect, similar to a physical rainbow for suitable choices of colors.
Functional
Both FillColor and FillColor2 are ignored; the color scheme is derived from FillColorFunction. See FillColorFunction for details (which depend on the object type). If no color function is given, the object will be rendered with FillColorType = Flat.
In this context, "a blend from A to B" means that color A is used at the top of the coordinate system (the part with the lowest z coordinate), color B is used at the bottom and in between each or the red, green, blues, and alpha channel are interpolated linearly.
By default, function plots use FillColorType = Dichromatic with a color range from blue to red (as in a temperature scale):
plotfunc3d(sin(x)*sin(y))
Using FillColorType, we color the graph completely in red:
plotfunc3d(sin(x)*sin(y), FillColorType = Flat)
Note, however, that the coloring is a visual aid, e.g., when looking from above:
plotfunc3d(sin(x)*sin(y), CameraDirection = [0, 0, 1])
plotfunc3d(sin(x)*sin(y), FillColorType = Flat, CameraDirection = [0, 0, 1])
In MuPAD^{®}, rainbow coloring does react to FillColor and FillColor2. The following plot uses different color settings to show this effect:
plot(plot::Function3d(sin(y), x = 0..10, y = -PI..PI, FillColor = RGB::BlueLight, FillColor2 = RGB::Blue), plot::Function3d(sin(y), x = 0..10, y = PI..3*PI, FillColor = RGB::Green, FillColor2 = RGB::Red), FillColorType = Rainbow, XLinesVisible = FALSE, YLinesVisible = FALSE)
What is happening here technically is that MuPAD performs a linear interpolation in HSV color space, i.e., the longest path round the following color circle is followed, with saturation and value (roughly speaking, whiteness and blackness) interpolated linearly:
The opacity of colors is treated the same way in both the Rainbow and Dichromatic settings of FillColorType, by linear interpolation:
plot((f:=plot::Function3d(sin(y), x = 0..10, y = -PI..PI, FillColorType = Rainbow, FillColor2 = RGB::VioletDark.[0.2], XLinesVisible = FALSE, YLinesVisible = FALSE)))
Setting a FillColorFunction for an object automatically sets FillColorType to Functional:
colorfunc := (x, y) -> [abs(x)/PI, 0, abs(y)/PI]: f := plot::Function3d(sin(x)*cos(y), x = -PI..PI, y = -PI..PI, FillColorFunction = colorfunc): f::FillColorType
plot(f)
delete colorfunc, f: