ReferenceregularPolygon (Page 1)

<regularPolygon>

A regular polygon with a given number of sides

<regularPolygon> is a Graphical component that renders a regular polygon on a <graph>.

Attributes and Properties

Attributes for <regularPolygon>

Number display (5)
avoidScientificNotation

boolean. Default value: false. Whether to render numbers in full decimal form rather than scientific notation.

displayDecimals

integer. Default value: 2. Number of decimal places to display when rendering this number.

displayDigits

integer. Default value: 3. Number of significant digits to display when rendering this number.

displaySmallAsZero

number. Default value: 1e-14. Threshold below which numbers are displayed as zero.

padZeros

boolean. Default value: false. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.

Labels (1)
labelIsName

boolean. Default value: false. Whether to use this component's name as its rendered label.

Other (32)
addControls

keyword. Whether to render interactive control handles.

ValueDescription
centerShow a control handle for moving the polygon's center.
radiusShow a control handle for resizing the polygon's radius.
centerAndRadius (default)Show control handles for both moving the center and resizing the radius.
noneShow no control handles.
allowDilation

boolean. Default value: true. Whether the shape can be dilated (scaled) under drag.

allowReflection

boolean. Default value: true. Whether the polyline can be reflected under drag.

allowRotation

boolean. Default value: true. Whether the polyline can be rotated under drag.

allowTranslation

boolean. Default value: true. Whether the polyline can be translated under drag.

number. Alias for inradius.

applyStyleToLabel

boolean. Default value: false. Whether to apply this component's selected style to its label.

number. Total area enclosed by the regular polygon.

[ point ]. Center of the regular polygon.

number. Distance from center to a vertex (circumscribed-circle radius).

controlOrder

integer. Default value: 0. Slot order for graph controls (1-indexed; 0 means no explicit slot request).

draggable

boolean. Default value: true. Whether the polyline can be dragged on a graph.

filled

boolean. Default value: false. Whether to fill the interior of the polygon.

fillOpacity

number. Opacity of fills, 0 to 1.

number. Distance from center to the midpoint of a side (inscribed-circle radius).

layer

integer. Default value: 0. Z-order layer index used to stack graphical components (higher values render on top).

lineStyle

keyword. Stroke style for lines.

ValueDescription
solidContinuous, unbroken stroke.
dashedStroke composed of evenly-spaced dashes.
dottedStroke composed of evenly-spaced dots.
lineWidth

number. Stroke width for lines, in pixels.

minShrink

number. Default value: 0.1. Minimum scaling factor allowed when dilating.

integer. Number of sides in the regular polygon (alias for numVertices).

integer. Default value: 3. Number of vertices in the regular polygon.

number. Total perimeter of the regular polygon.

number. Alias for circumradius.

rigid

boolean. Default value: false. Whether the polyline is treated as rigid (preserves shape under drag).

rotateAround

keyword. What point to rotate the shape around.

ValueDescription
centroid (default)Rotate around the centroid of the shape.
vertexRotate around the vertex specified by rotationVertex.
pointRotate around the explicit point given by rotationCenter.
rotationCenter

point. The point to rotate around when rotateAround is 'point'.

rotationHandleVertices

numberList. Default value: [1]. Vertex indices that should display rotation handles when the shape is rigid or preserves similarity.

rotationVertex

integer. Default value: 1. The vertex index to rotate around when rotateAround is 'vertex'.

showCoordsWhenDragging

boolean. Default value: true. Whether to show coordinate labels while dragging.

number. Length of each side of the regular polygon.

[ pointList ]. The list of vertex points that define the shape.

boolean. Whether individual vertices may be dragged independently.

Common to all components (9)
copy

reference. Create an independent copy of another component by reference. Enter a references a $name.

disabled

boolean. Default value: false. Whether this component is disabled and cannot be interacted with.

extend

reference. Extend another component by reference, inheriting its children and attributes. Enter a reference as $name.

boolean. Default value: false. Whether this component's value is fixed and cannot be modified.

boolean. Default value: false. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).

hide

boolean. Default value: false. Whether to hide this component from the rendered output.

isResponse

boolean. Default value: false. Whether this component is treated as a response for the purposes of assessment.

name

text. The name used to reference this component from elsewhere in the document.

styleNumber

integer. Default value: 1. The style number used to select this component's visual styling from the available style definitions.

Properties for <regularPolygon name="r">

Number display (5)
$r.avoidScientificNotation

boolean. Whether to render numbers in full decimal form rather than scientific notation.

$r.displayDecimals

integer. Number of decimal places to display when rendering this number.

$r.displayDigits

integer. Number of significant digits to display when rendering this number.

$r.displaySmallAsZero

number. Threshold below which numbers are displayed as zero.

$r.padZeros

boolean. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.

Labels (2)
$r.label

label. The label rendered with this component.

$r.labelIsName

boolean. Whether to use this component's name as its rendered label.

Other (34)
$r.addControls

text. Whether to render interactive control handles.

$r.allowDilation

boolean. Whether the polyline can be dilated under drag.

$r.allowReflection

boolean. Whether the polyline can be reflected under drag.

$r.allowRotation

boolean. Whether the polyline can be rotated under drag.

$r.allowTranslation

boolean. Whether the polyline can be translated under drag.

$r.apothem

number. Distance from center to the midpoint of a side (alias for inradius).

$r.applyStyleToLabel

boolean. Whether to apply this component's selected style to its label.

$r.area

number. The area enclosed by the polygon.

$r.borderStyleDescription

text. A textual description of the polygon's border style.

$r.center

[ math ]. The center coordinates of the regular polygon.

$r.circumradius

number. The radius of the circumscribed circle.

$r.controlOrder

integer. Slot order for graph controls (1-indexed; 0 means no explicit slot request).

$r.disabled

boolean. Whether this component is disabled and cannot be interacted with.

$r.draggable

boolean. Whether the polyline can be dragged on a graph.

$r.filled

boolean. Whether to fill the interior of the polygon.

$r.fillStyleDescription

text. A textual description of the polygon's fill style.

$r.fixed

boolean. Whether this component's value is fixed and cannot be modified.

$r.fixLocation

boolean. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).

$r.hidden

boolean. Whether this component is hidden from the rendered output.

$r.inradius

number. The radius of the inscribed circle.

$r.layer

integer. Z-order layer index used to stack graphical components (higher values render on top).

$r.numDimensions

number. The number of dimensions the polyline lives in.

$r.numSides

integer. The number of sides of the regular polygon.

$r.numVertices

integer. The number of vertices (sides) of the regular polygon.

$r.perimeter

number. The perimeter of the polygon.

$r.preserveSimilarity

boolean. Whether to preserve similarity when dragging.

$r.radius

number. Distance from center to a vertex (alias for circumradius).

$r.rigid

boolean. Whether the polyline is treated as rigid (preserves shape under drag).

$r.showCoordsWhenDragging

boolean. Whether to show coordinate labels while dragging.

$r.sideLength

number. The length of each side.

$r.styleDescription

text. A textual description of the polygon's style.

$r.styleDescriptionWithNoun

text. Style description including the word "polygon".

[ math ]. The vertices of the polyline.

$r.verticesDraggable

boolean. Whether each vertex can be dragged independently.

Common to all components (4)
$r.doenetML

text. The DoenetML source code that produced this component.

$r.hide

boolean. Whether to hide this component from the rendered output.

$r.isResponse

boolean. Whether this component is treated as a response for the purposes of assessment.

$r.styleNumber

integer. The style number used to select this component's visual styling from the available style definitions.

Examples Page 1

Example: Default <regularPolygon>

The default shape for a <regularPolygon> without any attributes specified is a triangle with radius 1 (where radius implies circumradius in this case), centered at the origin.


Example: <regularPolygon> with user-specified sides

In this example, the number of sides and side length are specified by the user with a <mathInput/> and a <slider/> component, respectively. These values are then referenced by the numSides and sideLength attributes of the <regularPolygon>. Note that the prefill attributes are required in this case; the values for these attributes cannot be null.


Example: Filled, colored <regularPolygon>

The filled attribute renders the polygon with default shading to match the styleNumber.


Example: Construct a polygon on a given line segment

Two vertices only of a <regularPolygon> are specified in the vertices attribute by referencing the endpoints of a defined <lineSegment>. Try tinkering with the number of sides in this example, or dragging the endpoints of the line segment.

Attribute Examples

Attribute Example: numVertices

The number of vertices of a regular polygon can be specified with the numVertices attribute.


Attribute Example: numSides

The number of sides of a regular polygon can be specified with the numSides attribute.


Attribute Example: center

The center of a regular polygon can be specified with the center attribute.

Note on precedence: the vertices and center attributes take precedence over the following attributes (in the event of overconstraint): radius / circumRadius, inRadius / apothem, sideLength, perimeter, and area.


Attribute Example: vertices

The endpoints of a known side can be specified with the vertices attribute, and Doenet will construct the resulting regular polygon (given a specified number of sides).

Note on precedence: the vertices and center attributes take precedence over the following attributes (in the event of overconstraint): radius / circumRadius, inRadius / apothem, sideLength, perimeter, and area.


Attribute Example: radius / circumRadius

The radius and circumRadius attributes are an interchangeable way to specify the distance from the center of a regular polygon to any of its vertices. (Note that the vertices attribute takes precedence in the case of overconstraint.)


Attribute Example: inRadius / apothem

The inRadius and apothem attributes are an interchangeable way to specify the distance from the center of a regular polygon to the midpoint of any of its sides. (Note that the vertices attribute takes precedence in the case of overconstraint.)


Attribute Example: sideLength

The sideLength attribute can be used to adjust the size of the regular polygon. (Note that the vertices attribute takes precedence in the case of overconstraint.)


Attribute Example: perimeter

The perimeter attribute can be used to adjust the size of the regular polygon. (Note that the vertices attribute takes precedence in the case of overconstraint.)