Generated by DocFX

Class Arc

An arc is any portion (other than the entire curve) of the circumference of a circle.
Represents the value of a plane, two angles (interval in radians) and a radius (radians).
The arc run ccw rotation where Xaxis and Yaxis form a orthonormal frame.

Inheritance
System.Object
NurbsBase
Circle
Arc
Inherited Members
Circle.Plane
Circle.Radius
Circle.AngleDomain
Circle.Center
Circle.Length
Circle.StartPoint
Circle.MidPoint
Circle.EndPoint
Circle.GetBoundingBox()
Circle.DerivativeAt(Double, Int32)
Circle.PointAt(Double)
Circle.PointAtLength(Double)
Circle.PointAtNormalizedLength(Double)
Circle.TangentAt(Double)
Circle.TangentAtLength(Double)
Circle.LengthAt(Double)
Circle.ClosestPoint(Point3)
Circle.ClosestParameter(Point3)
Circle.Equals(Circle)
NurbsBase.Weights
NurbsBase.Degree
NurbsBase.ControlPointLocations
NurbsBase.ControlPoints
NurbsBase.Knots
NurbsBase.IsClosed
NurbsBase.IsPeriodic
NurbsBase.Close()
NurbsBase.ParameterAtChordLength(Double, Double)
NurbsBase.DivideByChordLength(Double)
NurbsBase.Extrema()
NurbsBase.CurvatureAt(Double)
NurbsBase.PerpendicularFrameAt(Double)
NurbsBase.Reverse()
NurbsBase.ParameterAtLength(Double)
NurbsBase.ClampEnds()
NurbsBase.Offset(Double, Plane)
NurbsBase.Join(IList<NurbsBase>)
NurbsBase.DecomposeIntoBeziers()
NurbsBase.ElevateDegree(Int32)
NurbsBase.ReduceDegree(Double)
NurbsBase.Divide(Int32)
NurbsBase.Divide(Double, Boolean)
NurbsBase.PerpendicularFrames(List<Double>, Nullable<Vector3>, Nullable<Vector3>)
NurbsBase.SplitAt(Double)
NurbsBase.SplitAt(Double[])
NurbsBase.SubCurve(Interval)
NurbsBase.Equals(NurbsBase)
NurbsBase.Equals(Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Syntax
public class Arc : Circle, IGeometry<NurbsBase>, IEquatable<NurbsBase>, ITransformable<NurbsBase>, IGeometry<Circle>, IEquatable<Circle>, ITransformable<Circle>, IGeometry<Arc>, IEquatable<Arc>, ITransformable<Arc>
Examples
// Initializes an arc by plane, radius and angle.
double angle = GSharkMath.ToRadians(40);
_exampleArc2D = new Arc(Plane.PlaneXY, 15, angle);

// Initializes an arc by 3 points.
Point3 pt1 = new Point3(74.264416, 36.39316, -1.884313);
Point3 pt2 = new Point3(97.679126, 13.940616, 3.812853);
Point3 pt3 = new Point3(100.92443, 30.599893, -0.585116);
_exampleArc3D = new Arc(pt1, pt2, pt3);

Constructors

| Improve this Doc View Source

Arc(Plane, Double, Interval)

Initializes an arc from a plane, a radius and an angle domain expressed as an interval in radians.

Declaration
public Arc(Plane plane, double radius, Interval angleDomainRadians)
Parameters
Type Name Description
Plane plane

Base plane.

System.Double radius

Radius value in radians.

Interval angleDomainRadians

Interval defining the angle in radians of the arc. Interval should be between 0.0 to 2Pi

| Improve this Doc View Source

Arc(Plane, Double, Double)

Initializes an arc from a plane, a radius and an angle in radians.

Declaration
public Arc(Plane plane, double radius, double angleRadians)
Parameters
Type Name Description
Plane plane

Base plane.

System.Double radius

Radius value.

System.Double angleRadians

Angle of the arc in radians.

| Improve this Doc View Source

Arc(Point3, Point3, Point3)

Initializes an arc from three points.

Declaration
public Arc(Point3 pt1, Point3 pt2, Point3 pt3)
Parameters
Type Name Description
Point3 pt1

Start point of the arc.

Point3 pt2

Interior point on arc.

Point3 pt3

End point of the arc.

Properties

| Improve this Doc View Source

Angle

Gets the angle of this arc.
Angle value in radians.

Declaration
public double Angle { get; }
Property Value
Type Description
System.Double

Methods

| Improve this Doc View Source

BoundingBox()

Gets the bounding box of this arc.
https://stackoverflow.com/questions/1336663/2d-bounding-box-of-a-sector

Declaration
public BoundingBox BoundingBox()
Returns
Type Description
BoundingBox
| Improve this Doc View Source

ByStartEndDirection(Point3, Point3, Vector3)

Creates an arc defined by a start point, end point and a direction at the first point.

Declaration
public static Arc ByStartEndDirection(Point3 ptStart, Point3 ptEnd, Vector3 dir)
Parameters
Type Name Description
Point3 ptStart

Start point arc.

Point3 ptEnd

End point arc.

Vector3 dir

TangentAt direction at start.

Returns
Type Description
Arc

An arc.

| Improve this Doc View Source

Equals(Arc)

Determines whether the arc is equal to another.
The arcs are equal if have the same plane, radius and angle.

Declaration
public bool Equals(Arc other)
Parameters
Type Name Description
Arc other

The arc to compare to.

Returns
Type Description
System.Boolean

True if the arc are equal, otherwise false.

| Improve this Doc View Source

GetHashCode()

Computes a hash code for the arc.

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

A unique hashCode of an arc.

Overrides
Circle.GetHashCode()
| Improve this Doc View Source

Offset(Double)

Computes the offset of the arc.

Declaration
public Arc Offset(double distance)
Parameters
Type Name Description
System.Double distance

The distance of the offset.

Returns
Type Description
Arc

The offset arc.

| Improve this Doc View Source

ToString()

Gets the text representation of an arc.

Declaration
public override string ToString()
Returns
Type Description
System.String

Text value.

Overrides
Circle.ToString()
| Improve this Doc View Source

Transform(TransformMatrix)

Applies a transformation to the plane where the arc is on.

Declaration
public Arc Transform(TransformMatrix t)
Parameters
Type Name Description
TransformMatrix t

Transformation matrix to apply.

Returns
Type Description
Arc

A transformed arc.

Implements

IGeometry<T>
System.IEquatable<T>
ITransformable<T>
IGeometry<T>
System.IEquatable<T>
ITransformable<T>
IGeometry<T>
System.IEquatable<T>
ITransformable<T>