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
Geometry.Types.EllipticalArc3d units coordinates
on : SketchPlane3d units coordinates { defines : coordinates2d } -> EllipticalArc2d units coordinates2d -> EllipticalArc3d units coordinates
Construct a 3D elliptical arc by placing a 2D elliptical arc on a sketch plane.
startAngle : EllipticalArc3d units coordinates -> Angle
The start angle of an elliptical arc is the value of the ellipse parameter at the start point of the arc.
sweptAngle : EllipticalArc3d units coordinates -> Angle
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.
startPoint : EllipticalArc3d units coordinates -> Point3d units coordinates
Get the start point of an elliptical arc.
centerPoint : EllipticalArc3d units coordinates -> Point3d units coordinates
axes : EllipticalArc3d units coordinates -> SketchPlane3d units coordinates defines
xAxis : EllipticalArc3d units coordinates -> Axis3d units coordinates
yAxis : EllipticalArc3d units coordinates -> Axis3d units coordinates
xDirection : EllipticalArc3d units coordinates -> Direction3d coordinates
yDirection : EllipticalArc3d units coordinates -> Direction3d coordinates
xRadius : EllipticalArc3d units coordinates -> Quantity Basics.Float units
yRadius : EllipticalArc3d units coordinates -> Quantity Basics.Float units
boundingBox : EllipticalArc3d units coordinates -> BoundingBox3d units coordinatets
Get the bounding box of an elliptical arc.
signedDistanceAlong : Axis3d units coordinates -> EllipticalArc3d units coordinates -> Quantity.Interval.Interval Basics.Float units
Project an elliptical arc onto an axis, returning the range of projected distances along that axis.
pointOn : EllipticalArc3d units coordinates -> Basics.Float -> Point3d units coordinates
Get the point along an elliptical arc at a given parameter value.
Represents a nondegenerate spline (one that has finite, non-zero length).
nondegenerate : EllipticalArc3d units coordinates -> Result (Point3d units coordinates) (Nondegenerate units coordinates)
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.
fromNondegenerate : Nondegenerate units coordinates -> EllipticalArc3d units coordinates
Convert a nondegenerate elliptical arc back to a general EllipticalArc3d
.
tangentDirection : Nondegenerate units coordinates -> Basics.Float -> Direction3d coordinates
Get the tangent direction to a nondegenerate elliptical arc at a given parameter value.
sample : Nondegenerate units coordinates -> Basics.Float -> ( Point3d units coordinates, Direction3d coordinates )
Get both the point and tangent direction of a nondegenerate elliptical arc at a given parameter value.
segments : Basics.Int -> EllipticalArc3d units coordinates -> Polyline3d units coordinates
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 : Quantity Basics.Float units -> EllipticalArc3d units coordinates -> Polyline3d units coordinates
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 : EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
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.
scaleAbout : Point3d units coordinates -> Basics.Float -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Scale an elliptical arc about a given point by a given scale.
rotateAround : Axis3d units coordinates -> Angle -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Rotate an elliptical arc around a given axis by a given angle.
translateBy : Vector3d units coordinates -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Translate an elliptical arc by a given displacement.
translateIn : Direction3d coordinates -> Quantity Basics.Float units -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Translate an elliptical arc in a given direction by a given distance.
mirrorAcross : Plane3d units coordinates -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Mirror an elliptical arc across a given plane.
projectOnto : Plane3d units coordinates -> EllipticalArc3d units coordinates -> EllipticalArc3d units coordinates
Project an elliptical arc onto a plane.
projectInto : SketchPlane3d units coordinates { defines : coordinates2d } -> EllipticalArc3d units coordinates -> EllipticalArc2d units coordinates2d
Project a 3D elliptical arc into a sketch plane.
at : Quantity Basics.Float (Quantity.Rate units2 units1) -> EllipticalArc3d units1 coordinates -> EllipticalArc3d units2 coordinates
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.
at_ : Quantity Basics.Float (Quantity.Rate units1 units2) -> EllipticalArc3d units1 coordinates -> EllipticalArc3d units2 coordinates
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.
relativeTo : Frame3d units globalCoordinates { defines : localCoordinates } -> EllipticalArc3d units globalCoordinates -> EllipticalArc3d units localCoordinates
Take an elliptical arc defined in global coordinates, and return it expressed in local coordinates relative to a given reference frame.
placeIn : Frame3d units globalCoordinates { defines : localCoordinates } -> EllipticalArc3d units localCoordinates -> EllipticalArc3d units globalCoordinates
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.
arcLengthParameterized : { maxError : Quantity Basics.Float units } -> Nondegenerate units coordinates -> ArcLengthParameterized units coordinates
Build an arc length parameterization of the given elliptical arc, with a given accuracy.
pointAlong : ArcLengthParameterized units coordinates -> Quantity Basics.Float units -> Point3d units coordinates
Get the point along an elliptical arc at a given arc length.
midpoint : ArcLengthParameterized units coordinates -> Point3d units coordinates
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.
tangentDirectionAlong : ArcLengthParameterized units coordinates -> Quantity Basics.Float units -> Direction3d coordinates
Get the tangent direction along an elliptical arc at a given arc length.
sampleAlong : ArcLengthParameterized units coordinates -> Quantity Basics.Float units -> ( Point3d units coordinates, Direction3d coordinates )
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.
arcLengthParameterization : ArcLengthParameterized units coordinates -> ArcLength.Parameterization units
fromArcLengthParameterized : ArcLengthParameterized units coordinates -> EllipticalArc3d units coordinates
You are unlikely to need to use these functions directly, but they are useful if you are writing low-level geometric algorithms.
firstDerivative : EllipticalArc3d units coordinates -> Basics.Float -> Vector3d units coordinates
Get the first derivative of an elliptical arc at a given parameter value.
firstDerivativeBoundingBox : EllipticalArc3d units coordinates -> VectorBoundingBox3d units coordinates
Get the bounds on the first derivative of an elliptical arc.
maxSecondDerivativeMagnitude : EllipticalArc3d units coordinates -> Quantity Basics.Float units
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.
numApproximationSegments : Quantity Basics.Float units -> EllipticalArc3d units coordinates -> Basics.Int
Determine the number of linear segments needed to approximate an elliptical arc to within a given tolerance.