Documentation |
3D polygons
This functionality does not run in MATLAB.
plot::Polygon3d([pt3d_{1}, pt3d_{2}, …], <a = a_{min} .. a_{max}>, options) plot::Polygon3d(M_{3d}, <a = a_{min} .. a_{max}>, options)
plot::Polygon3d define polygons in 3D, by a given list of vertex points.
A polygon consists of points and edges. The edges are made up of the lines traversing from the first to the second point, the second to the third point, and so on. The last point is automatically connected with the first point if the attribute Closed = TRUE is specified.
Points and lines can be hidden via PointsVisible = FALSE and LinesVisible = FALSE. Per default the vertex points are hidden while the edges are visible.
All points as a whole can be manipulated via PointStyle and PointSize. The attribute LineColor sets the color for all points and all lines. Likewise all lines can be manipulated via LineStyle and LineWidth.
It is possible to vary the color of all lines and points via LineColorType. The default value is Flat. Specifying the values Dichromatic or Rainbow, a second color LineColor2 can be set. With Functional, the colors are taken from a user defined LineColorFunction. Cf. Example 2.
A 3D polygon can only be filled if it is defined by 3 vertices (a triangle). The attribute Filled = TRUE is ignored for other 3D polygons.
Attribute | Purpose | Default Value |
---|---|---|
AffectViewingBox | influence of objects on the ViewingBox of a scene | TRUE |
Closed | open or closed polygons | FALSE |
Color | the main color | RGB::Blue |
Filled | filled or transparent areas and surfaces | FALSE |
FillColor | color of areas and surfaces | RGB::LightBlue |
Frames | the number of frames in an animation | 50 |
Legend | makes a legend entry | |
LegendText | short explanatory text for legend | |
LegendEntry | add this object to the legend? | FALSE |
LineColor | color of lines | RGB::Blue |
LineWidth | width of lines | 0.35 |
LineColor2 | color of lines | RGB::DeepPink |
LineStyle | solid, dashed or dotted lines? | Solid |
LinesVisible | visibility of lines | TRUE |
LineColorType | line coloring types | Flat |
LineColorFunction | functional line coloring | |
LineColorDirection | the direction of color transitions on lines | [0, 0, 1] |
LineColorDirectionX | x-component of the direction of color transitions on lines | 0 |
LineColorDirectionY | y-component of the direction of color transitions on lines | 0 |
LineColorDirectionZ | z-component of the direction of color transitions on lines | 1 |
Name | the name of a plot object (for browser and legend) | |
ParameterEnd | end value of the animation parameter | |
ParameterName | name of the animation parameter | |
ParameterBegin | initial value of the animation parameter | |
ParameterRange | range of the animation parameter | |
Points3d | list of 3D points | |
PointSize | the size of points | 1.5 |
PointStyle | the presentation style of points | FilledCircles |
PointsVisible | visibility of mesh points | FALSE |
TimeEnd | end time of the animation | 10.0 |
TimeBegin | start time of the animation | 0.0 |
TimeRange | the real time span of an animation | 0.0 .. 10.0 |
Title | object title | |
TitleFont | font of object titles | [" sans-serif ", 11] |
TitlePosition | position of object titles | |
TitleAlignment | horizontal alignment of titles w.r.t. their coordinates | Center |
TitlePositionX | position of object titles, x component | |
TitlePositionY | position of object titles, y component | |
TitlePositionZ | position of object titles, z component | |
Visible | visibility | TRUE |
VisibleAfter | object visible after this time value | |
VisibleBefore | object visible until this time value | |
VisibleFromTo | object visible during this time range | |
VisibleAfterEnd | object visible after its animation time ended? | TRUE |
VisibleBeforeBegin | object visible before its animation time starts? | TRUE |
We create a polygon with vertices located at the 5 complex 5^{th} roots of 1. The polygon consists of the 4 lines joining the 5 points in the order given:
p := plot::Polygon2d( [[cos(2*PI*k/5), sin(2*PI*k/5)] $ k = 0..4]): plot(p, plot::Circle2d(1, [0, 0])):
In order to include the line connecting the last with the first point, pass the attribute Closed to the polygon:
p::Closed := TRUE: plot(p, plot::Circle2d(1, [0, 0])):
delete p
We plot a closed star-shaped 3D polygon with various color attributes:
p := plot::Polygon3d( [([cos(PI*k/3), sin(PI*k/3), sin(PI*k/3)], [cos(PI*k/3 + PI/6)/2, sin(PI*k/3 + PI/6)/2, sin(PI*k/3 + PI/6)/2]) $k = 1..6 ], Closed = TRUE): S1 := plot::Scene3d(p, LineColorType = Flat): S2 := plot::Scene3d(p, LineColorType = Dichromatic): S3 := plot::Scene3d(p, LineColorType = Dichromatic, LineColor = RGB::Blue, LineColor2 = RGB::Green): S4 := plot::Scene3d(p, LineColorType = Rainbow, LineColor = RGB::Blue, LineColor2 = RGB::Green): plot(S1, S2, S3, S4)
We plot the same polygon while animating its line color using a color function. The result is a dazzling star:
p := plot::Polygon3d( [([cos(PI*k/3), sin(PI*k/3), sin(PI*k/3)], [cos(PI*k/3 + PI/6)/2, sin(PI*k/3 + PI/6)/2, sin(PI*k/3 + PI/6)/2]) $k = 1..6 ], Closed = TRUE, LineColorFunction = proc(x, y, z, i, a) begin [sin(x + a*i)^2, sin(y + a*i)^2, sin(z + a*i)^2]: end_proc, a = 0..10): plot(p)
delete p, S1, S2, S3, S4
We plot a closed 2D polygon and fill the area inside. In fact, there are two possible interpretations of what "inside" really means. In the first plot, the complement of the unbound component of the complement of the polygon is filled. In the second plot only that area is filled that contains points with non-zero winding number with respect to the polygon. Cf. FillStyle for a detailed discussion.
p := plot::Polygon2d( [[cos(PI*k/3), sin(PI*k/3)] $k = 1..6, [cos(PI*k/3 + PI/6)/2, sin(PI*k/3 + PI/6)/2] $k = 1..6 ], Closed = TRUE): S1 := plot::Scene2d(p, Filled = TRUE): S2 := plot::Scene2d(p, Filled = TRUE, FillStyle = Winding): plot(S1, S2, Layout = Horizontal, Axes = Frame, Scaling = Constrained)
delete p, S1, S2:
pt3d_{1}, pt3d_{2}, … |
The 3D vertices. These must not be of type plot::Point3d, but lists of three numerical real values or arithmetical expressions of the animation parameter a (the coordinates). pt3d_{1}, pt3d_{2}, … is equivalent to the attribute Points3d. |
M_{3d} |
An array or a matrix with 3 columns. Each row provides the coordinates of one point. M_{3d} is equivalent to the attribute Points3d. |
a |
Animation parameter, specified as a = a_{min}..a_{max}, where a_{min} is the initial parameter value, and a_{max} is the final parameter value. |