# Arc struct

Namespace: [Rhino.Geometry](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
[StructLayout(LayoutKind.Sequential, Pack = 8, Size = 152)]
[Serializable]
public struct Arc : IEquatable<Arc>, IEpsilonComparable<Arc>, ICloneable
```

Represents the value of a plane, two angles and a radius in a sub-curve of a three-dimensional circle.

The curve is parameterized by an angle expressed in radians. For an IsValid arc the total subtended angle AngleRadians() = Domain()(1) - Domain()(0) must satisfy 0 < AngleRadians() < 2*Pi

The parameterization of the Arc is inherited from the Circle it is derived from. In particular

t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis

where xaxis and yaxis, (part of Circle.Plane) form an orthonormal frame of the plane containing the circle.

## Constructors

- [Arc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/ctor.md): (7 overloads) Initializes a new instance of an arc from a base circle and an angle.

## Properties

- [Angle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/angle.md): Gets or sets the sweep -or subtended- angle (in Radians) for this arc segment. Setting this property only alters the [Arc.EndAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/endangle.md) property such that Angle = [Arc.EndAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/endangle.md) - [Arc.StartAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/startangle.md).
- [AngleDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/angledegrees.md): Gets or sets the sweep -or subtended- angle (in Degrees) for this arc segment.
- [AngleDomain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/angledomain.md): Gets or sets the angle domain (in Radians) of this arc.
- [Center](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/center.md): Gets or sets the center point for this arc.
- [Circumference](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/circumference.md): Gets the circumference of the circle that is coincident with this arc.
- [Diameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/diameter.md): Gets or sets the Diameter of this arc.
- [EndAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/endangle.md): Gets or sets the end angle (in Radians) for this arc segment.
- [EndAngleDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/endangledegrees.md): Gets or sets the end angle (in Degrees) for this arc segment.
- [EndPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/endpoint.md): Gets the end point of the arc.
- [IsCircle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/iscircle.md): Gets a value indicating whether or not this arc is a complete circle.
- [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/isvalid.md): Gets a value indicating whether or not this arc is valid. Detail: Radius>0 and 0<AngleRadians()<=2*Math.Pi.
- [Length](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/length.md): Gets the length of the arc. (Length = Radius * (subtended angle in radians)).
- [MidPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/midpoint.md): Gets the mid-point of the arc.
- [Plane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/plane.md): Gets or sets the plane in which this arc lies.
- [Radius](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/radius.md): Gets or sets the radius of this arc.
- [StartAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/startangle.md): Gets or sets the start angle (in Radians) for this arc segment.
- [StartAngleDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/startangledegrees.md): Gets or sets the start angle (in Degrees) for this arc segment.
- [StartPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/startpoint.md): Gets the start point of the arc.
- [Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/unset.md): (static) Gets an Arc with Unset components.

## Methods

- [BoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/boundingbox.md): Computes the 3D axis aligned bounding box for this arc.
- [ClosestParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/closestparameter.md): Gets parameter on the arc closest to a test point.
- [ClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/closestpoint.md): Computes the point on an arc that is closest to a test point.
- [EpsilonEquals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/epsilonequals.md): Check that all values in other are within epsilon of the values in this
- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/equals.md): (2 overloads) Determines whether another arc has the same value as this arc.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/gethashcode.md): Computes a hash code for the present arc.
- [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/pointat.md): Gets the point at the given arc parameter.
- [Reverse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/reverse.md): Reverses the orientation of the arc. Changes the domain from [a,b] to [-b,-a].
- [ICloneable.Clone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/system-icloneable-clone.md)
- [TangentAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/tangentat.md): Gets the tangent at the given parameter.
- [ToNurbsCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/tonurbscurve.md): (2 overloads) Initializes a nurbs curve representation of this arc. This amounts to the same as calling NurbsCurve.CreateFromArc().
- [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/transform.md): Transforms the arc using a Transformation matrix.
- [Trim](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/trim.md): Sets the arc's angle domain (in radians) to the specified interval, provided it is increasing and its length does not exceed 2.0 * Math.PI (plus a small tolerance). If the interval length exceeds 2.0 * Math.PI it will be clamped to exactly 2.0 * Math.PI. Returns true if the domain was set successfully, false otherwise.

## Operators

- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/op-equality.md): (static) Determines whether two arcs have equal values.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.arc/op-inequality.md): (static) Determines whether two arcs have different values.
