Accelerating the pace of engineering and science

Documentation Center

• Trial Software

plot::Polygon2d

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

Syntax

```plot::Polygon2d([pt2d1, pt2d2, …], <a = amin .. amax>, options)
plot::Polygon2d(M2d, <a = amin .. amax>, options)
```

Description

plot::Polygon2d define polygons in 2D, 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.

The area of any closed 2D polygon can be filled by specifying Filled = TRUE. The filled area is defined by connecting the last and the first vertex. This additional edge itself, however, is only displayed if Closed = TRUE is set.

A fill color and a fill pattern can be chosen by FillColor and FillPattern.

In case of a self-intersecting polygon, a FillStyle can be selected. Cf. Example 3.

Attributes

AttributePurposeDefault Value
AffectViewingBoxinfluence of objects on the ViewingBox of a sceneTRUE
AntiAliasedantialiased lines and points?TRUE
Closedopen or closed polygonsFALSE
Colorthe main colorRGB::Blue
Filledfilled or transparent areas and surfacesFALSE
FillColorcolor of areas and surfacesRGB::Red
FillStyledefinition of inside/outsideEvenOdd
FillPatterntype of area fillingDiagonalLines
Framesthe number of frames in an animation50
Legendmakes a legend entry
LegendTextshort explanatory text for legend
LegendEntryadd this object to the legend?FALSE
LineColorcolor of linesRGB::Blue
LineWidthwidth of lines0.35
LineColor2color of linesRGB::DeepPink
LineStylesolid, dashed or dotted lines?Solid
LinesVisiblevisibility of linesTRUE
LineColorTypeline coloring typesFlat
LineColorFunctionfunctional line coloring
LineColorDirectionthe direction of color transitions on lines[0, 1]
LineColorDirectionXx-component of the direction of color transitions on lines0
LineColorDirectionYy-component of the direction of color transitions on lines1
Namethe name of a plot object (for browser and legend)
ParameterEndend value of the animation parameter
ParameterNamename of the animation parameter
ParameterBegininitial value of the animation parameter
ParameterRangerange of the animation parameter
Points2dlist of 2D points
PointSizethe size of points1.5
PointStylethe presentation style of pointsFilledCircles
PointsVisiblevisibility of mesh pointsFALSE
TimeEndend time of the animation10.0
TimeBeginstart time of the animation0.0
TimeRangethe real time span of an animation0.0 .. 10.0
Titleobject title
TitleFontfont of object titles[" sans-serif ", 11]
TitlePositionposition of object titles
TitleAlignmenthorizontal alignment of titles w.r.t. their coordinatesCenter
TitlePositionXposition of object titles, x component
TitlePositionYposition of object titles, y component
VisiblevisibilityTRUE
VisibleAfterobject visible after this time value
VisibleBeforeobject visible until this time value
VisibleFromToobject visible during this time range
VisibleAfterEndobject visible after its animation time ended?TRUE
VisibleBeforeBeginobject visible before its animation time starts?TRUE

Examples

Example 1

We create a polygon with vertices located at the 5 complex 5th 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`

Example 2

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`

Example 3

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:`

Parameters

 pt2d1, pt2d2, … The 2D vertices. These must not be of type plot::Point2d, but lists of two numerical real values or arithmetical expressions of the animation parameter a (the coordinates). pt2d1, pt2d2, … is equivalent to the attribute Points2d. M2d An array or a matrix with 2 columns. Each row provides the coordinates of one point. M2d is equivalent to the attribute Points2d. a Animation parameter, specified as a = amin..amax, where amin is the initial parameter value, and amax is the final parameter value.