Show / Hide Table of Contents

    Class EllipticalArc

    An elliptical arc.

    Inheritance
    System.Object
    Curve
    BoundedCurve
    TrimmedCurve<Ellipse>
    EllipticalArc
    Implements
    ICurve
    ITransformable<Curve>
    IBoundedCurve
    ITrimmedCurve<Ellipse>
    Inherited Members
    TrimmedCurve<Ellipse>.BasisCurve
    BoundedCurve.DefaultMinimumChordLength
    BoundedCurve.Start
    BoundedCurve.End
    BoundedCurve.Mid()
    BoundedCurve.IsClosedForRendering
    BoundedCurve.Frames(Double, Double, Double)
    BoundedCurve.ToPolyline(Int32)
    BoundedCurve.PointAtNormalized(Double)
    BoundedCurve.TransformAtNormalized(Double)
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: Elements.Geometry
    Assembly: Hypar.Elements.dll
    Syntax
    public class EllipticalArc : TrimmedCurve<Ellipse>, ICurve, ITransformable<Curve>, IBoundedCurve, ITrimmedCurve<Ellipse>

    Constructors

    EllipticalArc(Ellipse, Double, Double)

    Create an elliptical arc.

    Declaration
    public EllipticalArc(Ellipse ellipse, double startAngle, double endAngle)
    Parameters
    Type Name Description
    Ellipse ellipse

    The ellipse on which this trim is based.

    System.Double startAngle

    The start angle of the trim in degrees.

    System.Double endAngle

    The end parameter of the trim in degrees.

    EllipticalArc(Vector3, Double, Double, Double, Double)

    Create an elliptical arc.

    Declaration
    [JsonConstructor]
    public EllipticalArc(Vector3 center, double majorAxis, double minorAxis, double startAngle, double endAngle)
    Parameters
    Type Name Description
    Vector3 center

    The center of the ellipse.

    System.Double majorAxis

    The major axis (X) of the ellipse.

    System.Double minorAxis

    The minor axis (Y) of the ellipse.

    System.Double startAngle

    The start parameter of the trim.

    System.Double endAngle

    The end parameter of the trim.

    Properties

    Domain

    The domain of the curve.

    Declaration
    [JsonIgnore]
    public override Domain1d Domain { get; }
    Property Value
    Type Description
    Domain1d
    Overrides
    BoundedCurve.Domain

    EndAngle

    The angle from 0.0, in degrees, at which the arc will end with respect to the positive X axis.

    Declaration
    [JsonProperty("EndAngle", Required = Required.Always)]
    [Range(0, 360)]
    public double EndAngle { get; protected set; }
    Property Value
    Type Description
    System.Double

    StartAngle

    The angle from 0.0, in degrees, at which the arc will start with respect to the positive X axis.

    Declaration
    [JsonProperty("StartAngle", Required = Required.Always)]
    [Range(0, 360)]
    public double StartAngle { get; protected set; }
    Property Value
    Type Description
    System.Double

    Methods

    ArcLength(Double, Double)

    Calculate the length of the elliptical arc between start and end parameters.

    Declaration
    public override double ArcLength(double start, double end)
    Parameters
    Type Name Description
    System.Double start
    System.Double end
    Returns
    Type Description
    System.Double

    The length of the elliptical arc between start and end.

    Overrides
    BoundedCurve.ArcLength(Double, Double)

    Bounds()

    The bounds of the elliptical arc.

    Declaration
    public override BBox3 Bounds()
    Returns
    Type Description
    BBox3
    Overrides
    BoundedCurve.Bounds()

    GetSubdivisionParameters(Double, Double)

    Get parameters to be used to find points along the curve for visualization.

    Declaration
    public override double[] GetSubdivisionParameters(double startSetbackDistance = 0, double endSetbackDistance = 0)
    Parameters
    Type Name Description
    System.Double startSetbackDistance

    An optional setback from the start of the curve.

    System.Double endSetbackDistance

    An optional setback from the end of the curve.

    Returns
    Type Description
    System.Double[]

    A collection of parameter values.

    Overrides
    BoundedCurve.GetSubdivisionParameters(Double, Double)

    Length()

    Calculate the length of the elliptical arc.

    Declaration
    public override double Length()
    Returns
    Type Description
    System.Double

    The length of the elliptical arc.

    Overrides
    BoundedCurve.Length()

    ParameterAtDistanceFromParameter(Double, Double)

    Get the parameter at a distance from the start parameter along the curve.

    Declaration
    public override double ParameterAtDistanceFromParameter(double distance, double start)
    Parameters
    Type Name Description
    System.Double distance

    The distance from the start parameter.

    System.Double start

    The parameter from which to measure the distance.

    Returns
    Type Description
    System.Double
    Overrides
    Curve.ParameterAtDistanceFromParameter(Double, Double)

    PointAt(Double)

    Get a point at a parameter on the elliptical arc.

    Declaration
    public override Vector3 PointAt(double u)
    Parameters
    Type Name Description
    System.Double u

    The parameter at which to find a point.

    Returns
    Type Description
    Vector3

    A point.

    Overrides
    Curve.PointAt(Double)

    TransformAt(Double)

    Get a transform at a parameter on the elliptical arc.

    Declaration
    public override Transform TransformAt(double u)
    Parameters
    Type Name Description
    System.Double u

    The parameter at which to find a transform.

    Returns
    Type Description
    Transform

    A transform.

    Overrides
    Curve.TransformAt(Double)

    Transformed(Transform)

    Create a transformed copy of this curve. Use of non-affine transforms (i.e. scale) will result in unpredictable results for curve methods such as Length().

    Declaration
    public override Curve Transformed(Transform transform)
    Parameters
    Type Name Description
    Transform transform

    The transform to apply.

    Returns
    Type Description
    Curve
    Overrides
    Curve.Transformed(Transform)

    Implements

    ICurve
    ITransformable<T>
    IBoundedCurve
    ITrimmedCurve<TBasis>