Shapemetry API / Ellipse2d
Class: Ellipse2d
Defined in: curve2d/Ellipse2d.ts:22
Ellipse arc in 2D, ported from Geom2d_Ellipse + Geom2d_TrimmedCurve.
Parametrization (OCCT §7.4.2): P(u) = center + majorRadius·cos(u)·xAxis + minorRadius·sin(u)·yAxis where yAxis = (-xAxis.y, xAxis.x) u(t) = startAngle + sweepAngle·t, t ∈ [0, 1]
For a circle: majorRadius == minorRadius, xAxis may be (1,0). sweepAngle > 0 = CCW, sweepAngle < 0 = CW.
Implements
Constructors
Constructor
new Ellipse2d(
center,majorRadius,minorRadius,xAxis,startAngle,sweepAngle):Ellipse2d
Defined in: curve2d/Ellipse2d.ts:26
Parameters
center
majorRadius
number
minorRadius
number
xAxis
startAngle
number
sweepAngle
number
Returns
Ellipse2d
Properties
_GL5N
readonlystatic_GL5N:number[]
Defined in: curve2d/Ellipse2d.ts:23
_GL5W
readonlystatic_GL5W:number[]
Defined in: curve2d/Ellipse2d.ts:24
center
readonlycenter:Point2d
Defined in: curve2d/Ellipse2d.ts:27
majorRadius
readonlymajorRadius:number
Defined in: curve2d/Ellipse2d.ts:28
minorRadius
readonlyminorRadius:number
Defined in: curve2d/Ellipse2d.ts:29
xAxis
readonlyxAxis:Vector2d
Defined in: curve2d/Ellipse2d.ts:30
startAngle
readonlystartAngle:number
Defined in: curve2d/Ellipse2d.ts:31
sweepAngle
readonlysweepAngle:number
Defined in: curve2d/Ellipse2d.ts:32
Accessors
start
Get Signature
get start():
Point2d
Defined in: curve2d/Ellipse2d.ts:118
Returns
Implementation of
end
Get Signature
get end():
Point2d
Defined in: curve2d/Ellipse2d.ts:119
Returns
Implementation of
isClosed
Get Signature
get isClosed():
boolean
Defined in: curve2d/Ellipse2d.ts:121
Returns
boolean
Implementation of
Methods
toJSON()
toJSON():
Ellipse2dJSON
Defined in: curve2d/Ellipse2d.ts:37
Returns
Implementation of
fromJSON()
staticfromJSON(d):Ellipse2d
Defined in: curve2d/Ellipse2d.ts:48
Parameters
d
Returns
Ellipse2d
fromCircleArc()
staticfromCircleArc(center,startPoint,sweepAngle):Ellipse2d
Defined in: curve2d/Ellipse2d.ts:62
Circle arc: create from center, a start point, and a signed sweep angle.
Parameters
center
startPoint
sweepAngle
number
Returns
Ellipse2d
fromCenterStartEnd()
staticfromCenterStartEnd(center,start,end):Ellipse2d|null
Defined in: curve2d/Ellipse2d.ts:70
Circle arc: center + start + end, CCW shorter sweep. Returns null if degenerate.
Parameters
center
start
end
Returns
Ellipse2d | null
fromThreePoints()
staticfromThreePoints(start,middle,end):Ellipse2d|null
Defined in: curve2d/Ellipse2d.ts:81
Circle arc through three points. Returns null if collinear.
Parameters
start
middle
end
Returns
Ellipse2d | null
fromStartTangentEnd()
staticfromStartTangentEnd(start,tangent,end):Ellipse2d|null
Defined in: curve2d/Ellipse2d.ts:100
Circle arc: start point, tangent at start, end point. Returns null if degenerate.
Parameters
start
tangent
end
Returns
Ellipse2d | null
pointAt()
pointAt(
t):Point2d
Defined in: curve2d/Ellipse2d.ts:128
Parameters
t
number
Returns
Implementation of
tangentAt()
tangentAt(
t):Vector2d
Defined in: curve2d/Ellipse2d.ts:138
Parameters
t
number
Returns
Implementation of
axesAtParam()
axesAtParam(
t):Axes2d
Defined in: curve2d/Ellipse2d.ts:151
Parameters
t
number
Returns
Implementation of
length()
length():
number
Defined in: curve2d/Ellipse2d.ts:156
Returns
number
Implementation of
lengthAt()
lengthAt(
t):number
Defined in: curve2d/Ellipse2d.ts:168
Parameters
t
number
Returns
number
Implementation of
paramAtLength()
paramAtLength(
s):number
Defined in: curve2d/Ellipse2d.ts:169
Parameters
s
number
Returns
number
Implementation of
closestPoint()
closestPoint(
p):Point2d
Defined in: curve2d/Ellipse2d.ts:170
Parameters
p
Returns
Implementation of
signedArea()
signedArea():
number
Defined in: curve2d/Ellipse2d.ts:183
Signed area contribution for Green's theorem (used by Shape2d).
Analytic integral of 0.5 * ∫(x·dy/du − y·dx/du) du from U1 to U2. Derivation: expanding the integrand and using xa⊥ya, |xa|=|ya|=1: x·dy/du − y·dx/du = cx·(−a·sin·xa.y + b·cos·ya.y) − cy·(−a·sin·xa.x + b·cos·ya.x) + a·b Integrating analytically yields the formula below.
Returns
number
boundingBox()
boundingBox():
BoundingBox2d
Defined in: curve2d/Ellipse2d.ts:196
Returns
Implementation of
tessellate()
tessellate(
tol,out):void
Defined in: curve2d/Ellipse2d.ts:214
Parameters
tol
number
out
Point2d[]
Returns
void
splitAt()
splitAt(
t): [Ellipse2d,Ellipse2d]
Defined in: curve2d/Ellipse2d.ts:224
Parameters
t
number
Returns
[Ellipse2d, Ellipse2d]
Implementation of
reverse()
reverse():
Ellipse2d
Defined in: curve2d/Ellipse2d.ts:233
Returns
Ellipse2d
Implementation of
transform()
transform(
m):Ellipse2d
Defined in: curve2d/Ellipse2d.ts:242
Apply affine transformation. Uses 2×2 SVD to correctly handle non-uniform scaling and shear (xAxis and radii are recomputed from the transformed axis vectors). Determinant sign determines if sweep direction flips.
Parameters
m
Returns
Ellipse2d
Implementation of
clone()
clone():
Ellipse2d
Defined in: curve2d/Ellipse2d.ts:281
Returns
Ellipse2d
Implementation of
toNurbsCurve()
toNurbsCurve():
NurbsCurve
Defined in: curve2d/Ellipse2d.ts:285
Returns
_pointAtAngle()
_pointAtAngle(
u):Point2d
Defined in: curve2d/Ellipse2d.ts:298
Parameters
u
number