Class: RegularPolygram
Defined in: mobjects/geometry/PolygonExtensions.ts:531
RegularPolygram - A generalized star polygon {n/k}
Creates a regular star polygon by placing n vertices equally spaced on a circle and connecting every k-th vertex, where k is the density.
When gcd(n, k) = 1 the result is a single continuous self-intersecting path that winds k times around the center before closing (e.g. the pentagram {5/2}).
When gcd(n, k) > 1 the polygram decomposes into gcd(n,k) congruent regular polygon components, each rendered as a separate child VMobject. For example, a hexagram {6/2} becomes 2 equilateral triangles (2{3}).
This matches the behavior of Python manim's RegularPolygram.
Example
// Pentagram {5/2} -- single continuous star
const pentagram = new RegularPolygram({ numVertices: 5, density: 2 });
// Hexagram {6/2} = 2{3} -- two overlapping triangles
const hexagram = new RegularPolygram({ numVertices: 6, density: 2 });
// Heptagram {7/3}
const heptagram = new RegularPolygram({ numVertices: 7, density: 3 });
// Octagram {8/3}
const octagram = new RegularPolygram({ numVertices: 8, density: 3 });
Extends
Constructors
Constructor
new RegularPolygram(
options):RegularPolygram
Defined in: mobjects/geometry/PolygonExtensions.ts:539
Parameters
options
Returns
RegularPolygram
Overrides
Properties
__savedMobjectState
__savedMobjectState:
unknown=null
Defined in: core/Mobject.ts:82
JSON-serializable saved state (used by restoreState()).
Inherited from
_color
protected_color:string='#ffffff'
Defined in: core/Mobject.ts:57
Inherited from
_dirty
_dirty:
boolean=true
Defined in: core/Mobject.ts:75
Inherited from
_disableChildZLayering
protected_disableChildZLayering:boolean=false
Defined in: core/Mobject.ts:72
When true, children skip the 2D z-layering offset in _syncToThree.
Inherited from
VMobject._disableChildZLayering
_fillMaterial
protected_fillMaterial:MeshBasicMaterial=null
Defined in: core/VMobjectRendering.ts:39
Three.js fill material
Inherited from
_geometryDirty
protected_geometryDirty:boolean=true
Defined in: core/VMobjectRendering.ts:42
Whether geometry needs rebuild (separate from material dirty)
Inherited from
_opacity
protected_opacity:number=1
Defined in: core/Mobject.ts:68
Inherited from
_points3D
protected_points3D:number[][] =[]
Defined in: core/VMobject.ts:38
Array of cubic Bezier control points in 3D. Each point is [x, y, z]. Stored as: [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]
Inherited from
_sceneFrameWidth
_sceneFrameWidth:
number=null
Defined in: core/VMobjectRendering.ts:78
Inherited from
_sceneRendererHeight
_sceneRendererHeight:
number=null
Defined in: core/VMobjectRendering.ts:77
Inherited from
_sceneRendererWidth
_sceneRendererWidth:
number=null
Defined in: core/VMobjectRendering.ts:76
Per-instance renderer context (set by Scene when VMobject is added). When non-null these override the class-level statics so that multiple Scene instances do not corrupt each other's stroke-width calculations.
Inherited from
_strokeMaterial
protected_strokeMaterial:LineMaterial=null
Defined in: core/VMobjectRendering.ts:36
Three.js stroke material (Line2 LineMaterial for thick strokes)
Inherited from
_style
protected_style:MobjectStyle
Defined in: core/Mobject.ts:73
Inherited from
_threeObject
_threeObject:
Object3D<Object3DEventMap> =null
Defined in: core/Mobject.ts:74
Inherited from
_visiblePointCount
protected_visiblePointCount:number=null
Defined in: core/VMobject.ts:41
Number of points visible (for Create animation)
Inherited from
children
children:
Mobject[] =[]
Defined in: core/Mobject.ts:52
Inherited from
createdAtBeginning
createdAtBeginning:
boolean=false
Defined in: core/Mobject.ts:56
Inherited from
fillOpacity
fillOpacity:
number=0
Defined in: core/Mobject.ts:70
Inherited from
id
readonlyid:string
Defined in: core/Mobject.ts:50
Inherited from
parent
parent:
Mobject=null
Defined in: core/Mobject.ts:51
Inherited from
position
position:
Vector3
Defined in: core/Mobject.ts:53
Inherited from
rotation
rotation:
Euler
Defined in: core/Mobject.ts:54
Inherited from
savedState
savedState:
Mobject=null
Defined in: core/Mobject.ts:78
Saved mobject copy (used by Restore animation). Set by saveState().
Inherited from
scaleVector
scaleVector:
Vector3
Defined in: core/Mobject.ts:55
Inherited from
strokeWidth
strokeWidth:
number=4
Defined in: core/Mobject.ts:69
Inherited from
targetCopy
targetCopy:
Mobject=null
Defined in: core/Mobject.ts:80
Target copy used by generateTarget() / MoveToTarget animation.
Inherited from
useStrokeMesh
useStrokeMesh:
boolean=false
Defined in: core/VMobjectRendering.ts:146
When true, render stroke as a mesh ring with miter-joined corners instead of Line2 for closed paths.
Inherited from
_frameWidth
static_frameWidth:number=14
Defined in: core/VMobjectRendering.ts:69
Camera frame width in world units (set by Scene, for stroke width conversion)
Inherited from
_rendererHeight
static_rendererHeight:number=450
Defined in: core/VMobjectRendering.ts:66
Inherited from
_rendererWidth
static_rendererWidth:number=800
Defined in: core/VMobjectRendering.ts:65
Renderer resolution for LineMaterial (set by Scene)
Inherited from
useShaderCurves
staticuseShaderCurves:boolean=false
Defined in: core/VMobjectRendering.ts:131
When true, VMobjects use GPU Bezier SDF shaders for stroke rendering instead of the default Line2/LineMaterial approach.
Inherited from
Accessors
color
Get Signature
get color():
string
Defined in: core/Mobject.ts:58
Returns
string
Set Signature
set color(
value):void
Defined in: core/Mobject.ts:61
Parameters
value
string
Returns
void
Inherited from
fillColor
Get Signature
get fillColor():
string
Defined in: core/Mobject.ts:171
Returns
string
Set Signature
set fillColor(
color):void
Defined in: core/Mobject.ts:175
Parameters
color
string
Returns
void
Inherited from
isDirty
Get Signature
get isDirty():
boolean
Defined in: core/Mobject.ts:448
Returns
boolean
Inherited from
numPoints
Get Signature
get numPoints():
number
Defined in: core/VMobject.ts:108
Get the number of points
Returns
number
Inherited from
opacity
Get Signature
get opacity():
number
Defined in: core/Mobject.ts:101
Returns
number
Set Signature
set opacity(
value):void
Defined in: core/Mobject.ts:105
Parameters
value
number
Returns
void
Inherited from
points
Get Signature
get points():
Point[]
Defined in: core/VMobject.ts:58
Get all points as 2D Point objects (derived from _points3D)
Returns
Point[]
Inherited from
shaderCurves
Get Signature
get shaderCurves():
boolean
Defined in: core/VMobjectRendering.ts:168
Check whether this instance should use shader-based Bezier curve rendering.
Returns
boolean
Set Signature
set shaderCurves(
value):void
Defined in: core/VMobjectRendering.ts:173
Enable or disable shader-based Bezier rendering for this instance.
Parameters
value
boolean
Returns
void
Inherited from
style
Get Signature
get style():
MobjectStyle
Defined in: core/Mobject.ts:109
Returns
Inherited from
submobjects
Get Signature
get submobjects():
Mobject[]
Defined in: core/Mobject.ts:123
Returns
Mobject[]
Inherited from
visiblePointCount
Get Signature
get visiblePointCount():
number
Defined in: core/VMobject.ts:115
Get the number of visible points (for Create animation)
Returns
number
Set Signature
set visiblePointCount(
count):void
Defined in: core/VMobject.ts:122
Set the number of visible points (for Create animation)
Parameters
count
number
Returns
void
Inherited from
Methods
_buildEarcutFillGeometry()
protected_buildEarcutFillGeometry(points3D):BufferGeometry<NormalBufferAttributes,BufferGeometryEventMap>
Defined in: core/VMobjectRendering.ts:204
Parameters
points3D
number[][]
Returns
BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
Inherited from
VMobject._buildEarcutFillGeometry
_createCopy()
protected_createCopy():RegularPolygram
Defined in: mobjects/geometry/PolygonExtensions.ts:746
Create a copy of this RegularPolygram
Returns
RegularPolygram
Overrides
_createThreeObject()
protected_createThreeObject():Object3D
Defined in: core/VMobjectRendering.ts:216
Create the Three.js backing object for this VMobject.
Returns
Object3D
Inherited from
_disposeRenderingResources()
protected_disposeRenderingResources():void
Defined in: core/VMobjectRendering.ts:613
Returns
void
Inherited from
VMobject._disposeRenderingResources
_getBoundingBox()
_getBoundingBox():
object
Defined in: core/Mobject.ts:367
Returns
object
depth
depth:
number
height
height:
number
width
width:
number
Deprecated
Use getBoundingBox() instead.
Inherited from
_getEdgeInDirection()
_getEdgeInDirection(
direction):Vector3Tuple
Defined in: core/Mobject.ts:360
Parameters
direction
Returns
Inherited from
_interpolatePointList3D()
protected_interpolatePointList3D(points,targetCount):number[][]
Defined in: core/VMobject.ts:448
Interpolate a 3D point list to have a specific number of points.
Parameters
points
number[][]
targetCount
number
Returns
number[][]
Inherited from
VMobject._interpolatePointList3D
_markDirty()
_markDirty():
void
Defined in: core/Mobject.ts:438
Returns
void
Inherited from
_markDirtyUpward()
_markDirtyUpward():
void
Defined in: core/Mobject.ts:442
Returns
void
Inherited from
_pointsToCurvePath()
protected_pointsToCurvePath():CurvePath<Vector3>
Defined in: core/VMobjectRendering.ts:200
Returns
CurvePath<Vector3>
Inherited from
_pointsToShape()
protected_pointsToShape():Shape
Defined in: core/VMobjectRendering.ts:196
Returns
Shape
Inherited from
_setSceneContext()
_setSceneContext(
rendererWidth,rendererHeight,frameWidth):void
Defined in: core/VMobjectRendering.ts:109
Set per-instance scene context for multi-scene support. Called by Scene when a VMobject is added or the scene is resized.
Parameters
rendererWidth
number
rendererHeight
number
frameWidth
number
Returns
void
Inherited from
_syncMaterialToThree()
protected_syncMaterialToThree():void
Defined in: core/VMobjectRendering.ts:555
Returns
void
Inherited from
_syncToThree()
_syncToThree():
void
Defined in: core/Mobject.ts:416
Returns
void
Inherited from
_updateGeometry()
protected_updateGeometry(group):void
Defined in: core/VMobjectRendering.ts:245
Update the geometry within the Three.js group.
Parameters
group
Group
Returns
void
Inherited from
add()
add(...
mobjects):this
Defined in: core/Mobject.ts:247
Parameters
mobjects
...Mobject[]
Returns
this
Inherited from
addPoints()
addPoints(...
points):this
Defined in: core/VMobject.ts:168
Add points to this VMobject using 2D Point objects
Parameters
points
...Point[]
Returns
this
Inherited from
addPointsAsCorners()
addPointsAsCorners(
corners):this
Defined in: core/VMobject.ts:223
Add straight line segments from the last point to each corner. Each corner creates a new cubic Bezier segment with linear handles. Matches Manim's add_points_as_corners.
Parameters
corners
number[][]
Array of [x, y, z] corner points to connect to
Returns
this
this for chaining
Inherited from
addUpdater()
addUpdater(
updater,callOnAdd):this
Defined in: core/Mobject.ts:474
Parameters
updater
callOnAdd
boolean = false
Returns
this
Inherited from
alignPoints()
alignPoints(
target):void
Defined in: core/VMobject.ts:322
Align points between this VMobject and a target so they have the same count, consistent winding, and optimal rotation for smooth morphing.
Parameters
target
The target VMobject to align with
Returns
void
Inherited from
alignTo()
alignTo(
target,direction):this
Defined in: core/Mobject.ts:345
Parameters
target
direction
Returns
this
Inherited from
applyFunction()
applyFunction(
fn):this
Defined in: core/Mobject.ts:504
Parameters
fn
(point) => number[]
Returns
this
Inherited from
applyToFamily()
applyToFamily(
func):this
Defined in: core/Mobject.ts:462
Parameters
func
(mobject) => void
Returns
this
Inherited from
become()
become(
other):this
Defined in: core/Mobject.ts:294
Parameters
other
Returns
this
Inherited from
center()
center():
this
Defined in: core/Mobject.ts:397
Returns
this
Inherited from
clearPoints()
clearPoints():
this
Defined in: core/VMobject.ts:257
Clear all points
Returns
this
Inherited from
clearUpdaters()
clearUpdaters():
this
Defined in: core/Mobject.ts:486
Returns
this
Inherited from
copy()
copy():
VMobject
Defined in: core/VMobject.ts:496
Create a copy of this VMobject. Subclasses override _createCopy() to produce an instance of the right concrete type (Circle, Square, etc.), but those constructors typically regenerate points from their own parameters (radius, sideLength, ...). After a Transform animation has morphed the point data, the regenerated points no longer match the actual visual state. We therefore always overwrite the clone's _points3D with the source's current data.
Returns
Inherited from
dispose()
dispose():
void
Defined in: core/VMobject.ts:616
Clean up Three.js resources
Returns
void
Inherited from
flip()
flip(
axis):this
Defined in: core/Mobject.ts:225
Parameters
axis
Vector3Tuple = ...
Returns
this
Inherited from
generateTarget()
generateTarget():
Mobject
Defined in: core/Mobject.ts:516
Returns
Inherited from
getBottom()
getBottom():
Vector3Tuple
Defined in: core/Mobject.ts:376
Returns
Inherited from
getBoundingBox()
getBoundingBox():
object
Defined in: core/Mobject.ts:363
Returns
object
depth
depth:
number
height
height:
number
width
width:
number
Inherited from
getBounds()
getBounds():
object
Defined in: core/Mobject.ts:310
Returns
object
max
max:
object
max.x
x:
number
max.y
y:
number
max.z
z:
number
min
min:
object
min.x
x:
number
min.y
y:
number
min.z
z:
number
Inherited from
getCenter()
getCenter():
Vector3Tuple
Defined in: core/VMobject.ts:548
Get the center of this VMobject based on its points. Uses bounding box center (matching Python Manim's get_center behavior) rather than point centroid, which is inaccurate for Bezier control points.
Returns
Inherited from
getDensity()
getDensity():
number
Defined in: mobjects/geometry/PolygonExtensions.ts:688
Get the density (k in the Schlafli symbol {n/k})
Returns
number
getEdge()
getEdge(
direction):Vector3Tuple
Defined in: core/Mobject.ts:370
Parameters
direction
Returns
Inherited from
getFamily()
getFamily():
Mobject[]
Defined in: core/Mobject.ts:468
Returns
Mobject[]
Inherited from
getLeft()
getLeft():
Vector3Tuple
Defined in: core/Mobject.ts:379
Returns
Inherited from
getNumComponents()
getNumComponents():
number
Defined in: mobjects/geometry/PolygonExtensions.ts:697
Get the number of disconnected polygon components. Equal to gcd(numVertices, density). When this is 1 the polygram is a single continuous path.
Returns
number
getNumVertices()
getNumVertices():
number
Defined in: mobjects/geometry/PolygonExtensions.ts:681
Get the number of vertices (n in the Schlafli symbol {n/k})
Returns
number
getPoints()
getPoints():
number[][]
Defined in: core/VMobject.ts:101
Get all points defining this VMobject as 3D arrays
Returns
number[][]
Copy of the points array
Inherited from
getPolygramCenter()
getPolygramCenter():
Vector3Tuple
Defined in: mobjects/geometry/PolygonExtensions.ts:730
Get the center of the polygram
Returns
getRadius()
getRadius():
number
Defined in: mobjects/geometry/PolygonExtensions.ts:714
Get the radius
Returns
number
getRight()
getRight():
Vector3Tuple
Defined in: core/Mobject.ts:382
Returns
Inherited from
getSchlafliSymbol()
getSchlafliSymbol():
string
Defined in: mobjects/geometry/PolygonExtensions.ts:704
Get the Schlafli symbol as a string, e.g. "{5/2}"
Returns
string
getThreeObject()
getThreeObject():
Object3D
Defined in: core/Mobject.ts:452
Returns
Object3D
Inherited from
getTop()
getTop():
Vector3Tuple
Defined in: core/Mobject.ts:373
Returns
Inherited from
getUnitVector()
getUnitVector():
Vector3Tuple
Defined in: core/VMobject.ts:524
Get the unit vector from the first to the last point of this VMobject, accounting for the object's current rotation transform.
Returns
Inherited from
getUpdaters()
getUpdaters():
UpdaterFunction[]
Defined in: core/Mobject.ts:493
Returns
Inherited from
getVisiblePointCount()
getVisiblePointCount():
number
Defined in: core/VMobject.ts:157
Get the visible point count (null means all points visible).
Returns
number
Inherited from
getVisiblePoints()
getVisiblePoints():
Point[]
Defined in: core/VMobject.ts:131
Get points that should be visible (for rendering) as 2D Points
Returns
Point[]
Inherited from
getVisiblePoints3D()
getVisiblePoints3D():
number[][]
Defined in: core/VMobject.ts:139
Get points that should be visible (for rendering) as 3D arrays
Returns
number[][]
Inherited from
hasUpdaters()
hasUpdaters():
boolean
Defined in: core/Mobject.ts:490
Returns
boolean
Inherited from
interpolate()
interpolate(
target,alpha):this
Defined in: core/VMobject.ts:275
Interpolate this VMobject towards a target VMobject
Parameters
target
The target VMobject to interpolate towards
alpha
number
Progress from 0 (this) to 1 (target)
Returns
this
this for chaining
Inherited from
markGeometryDirty()
markGeometryDirty():
void
Defined in: core/VMobjectRendering.ts:180
Mark geometry as needing rebuild on next render.
Returns
void
Inherited from
moveTo()
moveTo(
target,alignedEdge?):this
Defined in: core/Mobject.ts:192
Parameters
target
alignedEdge?
Returns
this
Inherited from
moveToAligned()
moveToAligned(
target,alignedEdge?):this
Defined in: core/Mobject.ts:355
Parameters
target
alignedEdge?
Returns
this
Inherited from
nextTo()
nextTo(
target,direction,buff):this
Defined in: core/Mobject.ts:328
Parameters
target
direction
Vector3Tuple = RIGHT
buff
number = 0.25
Returns
this
Inherited from
prepareForNonlinearTransform()
prepareForNonlinearTransform(
numPieces):this
Defined in: core/Mobject.ts:509
Parameters
numPieces
number = 50
Returns
this
Inherited from
VMobject.prepareForNonlinearTransform
remove()
remove(...
mobjects):this
Defined in: core/Mobject.ts:260
Parameters
mobjects
...Mobject[]
Returns
this
Inherited from
removeUpdater()
removeUpdater(
updater):this
Defined in: core/Mobject.ts:480
Parameters
updater
Returns
this
Inherited from
replace()
replace(
target,stretch):this
Defined in: core/Mobject.ts:299
Parameters
target
stretch
boolean = false
Returns
this
Inherited from
restoreState()
restoreState():
boolean
Defined in: core/Mobject.ts:526
Returns
boolean
Inherited from
rotate()
rotate(
angle,axisOrOptions?):this
Defined in: core/Mobject.ts:213
Rotate the mobject around an axis. Delegates to rotateMobject for the heavy lifting.
Parameters
angle
number
axisOrOptions?
Vector3Tuple | { aboutPoint?: Vector3Tuple; axis?: Vector3Tuple; }
Returns
this
Inherited from
rotateAboutOrigin()
rotateAboutOrigin(
angle,axis):this
Defined in: core/Mobject.ts:221
Parameters
angle
number
axis
Vector3Tuple = ...
Returns
this
Inherited from
saveState()
saveState():
this
Defined in: core/Mobject.ts:521
Returns
this
Inherited from
scale()
scale(
factor):this
Defined in: core/Mobject.ts:233
Parameters
factor
number | Vector3Tuple
Returns
this
Inherited from
setColor()
setColor(
color):this
Defined in: core/Mobject.ts:127
Parameters
color
string
Returns
this
Inherited from
setFill()
setFill(
color?,opacity?):this
Defined in: core/Mobject.ts:165
Parameters
color?
string
opacity?
number
Returns
this
Inherited from
setFillOpacity()
setFillOpacity(
opacity):this
Defined in: core/Mobject.ts:155
Parameters
opacity
number
Returns
this
Inherited from
setOpacity()
setOpacity(
opacity):this
Defined in: core/Mobject.ts:135
Parameters
opacity
number
Returns
this
Inherited from
setPoints()
setPoints(
points):this
Defined in: core/VMobject.ts:68
Set the points defining this VMobject. Accepts either Point[] ({x, y} objects) or number[][] ([x, y, z] arrays).
Parameters
points
Array of points in either format
number[][] | Point[]
Returns
this
this for chaining
Inherited from
setPoints3D()
setPoints3D(
points):this
Defined in: core/VMobject.ts:93
Set the points defining this VMobject using 3D arrays (alias for setPoints with number[][])
Parameters
points
number[][]
Array of [x, y, z] control points for cubic Bezier curves
Returns
this
this for chaining
Inherited from
setPointsAsCorners()
setPointsAsCorners(
corners):this
Defined in: core/VMobject.ts:182
Set the points to form straight line segments between corner points. Each pair of consecutive corners becomes a cubic Bezier with linear handles. Matches Manim's set_points_as_corners.
Parameters
corners
number[][]
Array of [x, y, z] corner points
Returns
this
this for chaining
Inherited from
setPolygramCenter()
setPolygramCenter(
value):this
Defined in: mobjects/geometry/PolygonExtensions.ts:737
Set the center of the polygram
Parameters
value
Returns
this
setRadius()
setRadius(
value):this
Defined in: mobjects/geometry/PolygonExtensions.ts:721
Set the radius
Parameters
value
number
Returns
this
setStrokeWidth()
setStrokeWidth(
width):this
Defined in: core/Mobject.ts:145
Parameters
width
number
Returns
this
Inherited from
setStyle()
setStyle(
style):this
Defined in: core/Mobject.ts:113
Parameters
style
Partial<MobjectStyle>
Returns
this
Inherited from
setVisiblePointCount()
setVisiblePointCount(
count):void
Defined in: core/VMobject.ts:148
Set visible point count for progressive creation animations. Use null to show all points.
Parameters
count
number
Returns
void
Inherited from
setX()
setX(
x):this
Defined in: core/Mobject.ts:385
Parameters
x
number
Returns
this
Inherited from
setY()
setY(
y):this
Defined in: core/Mobject.ts:389
Parameters
y
number
Returns
this
Inherited from
setZ()
setZ(
z):this
Defined in: core/Mobject.ts:393
Parameters
z
number
Returns
this
Inherited from
shift()
shift(
delta):this
Defined in: core/Mobject.ts:184
Parameters
delta
Returns
this
Inherited from
toCorner()
toCorner(
direction,buff,frameDimensions?):this
Defined in: core/Mobject.ts:406
Parameters
direction
Vector3Tuple = ...
buff
number = 0.5
frameDimensions?
[number, number]
Returns
this
Inherited from
toEdge()
toEdge(
direction,buff,frameDimensions?):this
Defined in: core/Mobject.ts:401
Parameters
direction
buff
number = 0.5
frameDimensions?
[number, number]
Returns
this
Inherited from
update()
update(
dt):void
Defined in: core/Mobject.ts:497
Parameters
dt
number
Returns
void
Inherited from
_toLinewidth()
static_toLinewidth(this,strokeWidth):number
Defined in: core/VMobjectRendering.ts:123
Convert Manim-compatible strokeWidth to LineMaterial linewidth in pixels. Python Manim uses cairo_line_width_multiple=0.01, so: linewidth_px = strokeWidth * 0.01 * (rendererWidth / frameWidth)
NOTE: This static method uses class-level statics. For multi-scene correctness, internal code should use the instance method _computeLinewidth().
Parameters
this
typeof VMobjectRendering
strokeWidth
number
Returns
number