An EllipticalArc3d is a section of an Ellipse3d with a start and end
point, or equivalently a 3D version of an EllipticalArc2d. This module
includes functionality for
Construct a 3D elliptical arc by placing a 2D elliptical arc on a sketch plane.
The start angle of an elliptical arc is the value of the ellipse parameter at the start point of the arc.
The swept angle of an elliptical arc is the difference between values of the ellipse parameter from the start point to the end point of the arc.
Get the start point of an elliptical arc.
Get the end point of an elliptical arc.
All remaining properties of elliptical arcs are actually just properties of the underlying ellipse.
Get the bounding box of an elliptical arc.
Project an elliptical arc onto an axis, returning the range of projected distances along that axis.
Get the point along an elliptical arc at a given parameter value.
Represents a nondegenerate spline (one that has finite, non-zero length).
Attempt to construct a nondegenerate elliptical arc from a general
EllipticalArc3d. If the arc is in fact degenerate (consists of a single
point), returns an Err with that point.
Convert a nondegenerate elliptical arc back to a general EllipticalArc3d.
Get the tangent direction to a nondegenerate elliptical arc at a given parameter value.
Get both the point and tangent direction of a nondegenerate elliptical arc at a given parameter value.
Approximate an elliptical arc by a given number of line segments. Note that the number of points in the polyline will be one more than the number of segments.
Approximate an elliptical arc as a polyline, within a given tolerance. Every point on the returned polyline will be within the given tolerance of the elliptical arc.
These transformations generally behave just like the ones in the Point3d
module.
Reverse the direction of an elliptical arc, so that the start point becomes the end point and vice versa. Does not change the shape of the arc or any properties of the underlying ellipse.
Scale an elliptical arc about a given point by a given scale.
Rotate an elliptical arc around a given axis by a given angle.
Translate an elliptical arc by a given displacement.
Translate an elliptical arc in a given direction by a given distance.
Mirror an elliptical arc across a given plane.
Project an elliptical arc onto a plane.
Project a 3D elliptical arc into a sketch plane.
Convert an elliptical arc from one units type to another, by providing a conversion factor given as a rate of change of destination units with respect to source units.
Convert an elliptical arc from one units type to another, by providing an 'inverse' conversion factor given as a rate of change of source units with respect to destination units.
Take an elliptical arc defined in global coordinates, and return it expressed in local coordinates relative to a given reference frame.
Take an elliptical arc considered to be defined in local coordinates relative to a given reference frame, and return that arc expressed in global coordinates.
An elliptical arc that has been parameterized by arc length.
Build an arc length parameterization of the given elliptical arc, with a given accuracy.
Find the total arc length of an elliptical arc, to within the tolerance
given when calling arcLengthParameterized.
For the following evaluation functions, the given arc length will be clamped to the arc length of the spline, so the result will always be on the spline.
Get the point along an elliptical arc at a given arc length.
Get the midpoint of an elliptical arc. Note that this is the point half way along the elliptical arc by arc length, which is not in general the same as evaluating at a parameter value of 0.5.
Get the tangent direction along an elliptical arc at a given arc length.
Get the point and tangent direction along an elliptical arc at a given arc length.
An ArcLengthParameterized value is a combination of an
ArcLengthParameterization and an
underlying EllipticalArc3d. If you need to do something fancy, you can extract
these two values separately.
You are unlikely to need to use these functions directly, but they are useful if you are writing low-level geometric algorithms.
Get the first derivative of an elliptical arc at a given parameter value.
Get the bounds on the first derivative of an elliptical arc.
Find a conservative upper bound on the magnitude of the second derivative of an elliptical arc. This can be useful when determining error bounds for various kinds of linear approximations.
Determine the number of linear segments needed to approximate an elliptical arc to within a given tolerance.