## Documentation Center |

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:

`FillColor`|`FillColor2`|`Filled`|`FillPattern`|`LineColorType`|`Shading`

Was this topic helpful?