Skip to content

Shapemetry API


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

Point2d

majorRadius

number

minorRadius

number

xAxis

Vector2d

startAngle

number

sweepAngle

number

Returns

Ellipse2d

Properties

_GL5N

readonly static _GL5N: number[]

Defined in: curve2d/Ellipse2d.ts:23


_GL5W

readonly static _GL5W: number[]

Defined in: curve2d/Ellipse2d.ts:24


center

readonly center: Point2d

Defined in: curve2d/Ellipse2d.ts:27


majorRadius

readonly majorRadius: number

Defined in: curve2d/Ellipse2d.ts:28


minorRadius

readonly minorRadius: number

Defined in: curve2d/Ellipse2d.ts:29


xAxis

readonly xAxis: Vector2d

Defined in: curve2d/Ellipse2d.ts:30


startAngle

readonly startAngle: number

Defined in: curve2d/Ellipse2d.ts:31


sweepAngle

readonly sweepAngle: number

Defined in: curve2d/Ellipse2d.ts:32

Accessors

start

Get Signature

get start(): Point2d

Defined in: curve2d/Ellipse2d.ts:118

Returns

Point2d

Implementation of

Curve2d.start


end

Get Signature

get end(): Point2d

Defined in: curve2d/Ellipse2d.ts:119

Returns

Point2d

Implementation of

Curve2d.end


isClosed

Get Signature

get isClosed(): boolean

Defined in: curve2d/Ellipse2d.ts:121

Returns

boolean

Implementation of

Curve2d.isClosed

Methods

toJSON()

toJSON(): Ellipse2dJSON

Defined in: curve2d/Ellipse2d.ts:37

Returns

Ellipse2dJSON

Implementation of

Curve2d.toJSON


fromJSON()

static fromJSON(d): Ellipse2d

Defined in: curve2d/Ellipse2d.ts:48

Parameters

d

Ellipse2dJSON

Returns

Ellipse2d


fromCircleArc()

static fromCircleArc(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

Point2d

startPoint

Point2d

sweepAngle

number

Returns

Ellipse2d


fromCenterStartEnd()

static fromCenterStartEnd(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

Point2d

start

Point2d

end

Point2d

Returns

Ellipse2d | null


fromThreePoints()

static fromThreePoints(start, middle, end): Ellipse2d | null

Defined in: curve2d/Ellipse2d.ts:81

Circle arc through three points. Returns null if collinear.

Parameters

start

Point2d

middle

Point2d

end

Point2d

Returns

Ellipse2d | null


fromStartTangentEnd()

static fromStartTangentEnd(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

Point2d

tangent

Vector2d

end

Point2d

Returns

Ellipse2d | null


pointAt()

pointAt(t): Point2d

Defined in: curve2d/Ellipse2d.ts:128

Parameters

t

number

Returns

Point2d

Implementation of

Curve2d.pointAt


tangentAt()

tangentAt(t): Vector2d

Defined in: curve2d/Ellipse2d.ts:138

Parameters

t

number

Returns

Vector2d

Implementation of

Curve2d.tangentAt


axesAtParam()

axesAtParam(t): Axes2d

Defined in: curve2d/Ellipse2d.ts:151

Parameters

t

number

Returns

Axes2d

Implementation of

Curve2d.axesAtParam


length()

length(): number

Defined in: curve2d/Ellipse2d.ts:156

Returns

number

Implementation of

Curve2d.length


lengthAt()

lengthAt(t): number

Defined in: curve2d/Ellipse2d.ts:168

Parameters

t

number

Returns

number

Implementation of

Curve2d.lengthAt


paramAtLength()

paramAtLength(s): number

Defined in: curve2d/Ellipse2d.ts:169

Parameters

s

number

Returns

number

Implementation of

Curve2d.paramAtLength


closestPoint()

closestPoint(p): Point2d

Defined in: curve2d/Ellipse2d.ts:170

Parameters

p

Point2d

Returns

Point2d

Implementation of

Curve2d.closestPoint


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

BoundingBox2d

Implementation of

Curve2d.boundingBox


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

Curve2d.splitAt


reverse()

reverse(): Ellipse2d

Defined in: curve2d/Ellipse2d.ts:233

Returns

Ellipse2d

Implementation of

Curve2d.reverse


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

Transformation2d

Returns

Ellipse2d

Implementation of

Curve2d.transform


clone()

clone(): Ellipse2d

Defined in: curve2d/Ellipse2d.ts:281

Returns

Ellipse2d

Implementation of

Curve2d.clone


toNurbsCurve()

toNurbsCurve(): NurbsCurve

Defined in: curve2d/Ellipse2d.ts:285

Returns

NurbsCurve


_pointAtAngle()

_pointAtAngle(u): Point2d

Defined in: curve2d/Ellipse2d.ts:298

Parameters

u

number

Returns

Point2d