# Circle 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 = 136)]
[Serializable]
public struct Circle : IEpsilonComparable<Circle>, ICloneable
```

Represents a circle in 3D.

The values used are a radius and an orthonormal frame of the plane containing the circle, with origin at the center.

The circle is parameterized by radians from 0 to 2 Pi given by

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

where center, xaxis and yaxis define the orthonormal frame of the circle plane.

**Remarks:** >An IsValid circle has positive radius and an IsValid plane defining the frame.

## Constructors

- [Circle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/ctor.md): (7 overloads) Initializes a circle from an arc.

## Properties

- [BoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/boundingbox.md): Gets the circle's 3d axis aligned bounding box.
- [Center](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/center.md): Gets or sets the center point of this circle.
- [Circumference](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/circumference.md): Gets or sets the circumference of this circle.
- [Diameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/diameter.md): Gets or sets the diameter (radius * 2.0) of this circle. Diameters should be positive values.
- [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/isvalid.md): A valid circle has radius larger than 0.0 and a base plane which is must also be valid.
- [Normal](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/normal.md): Gets the normal vector for this circle.
- [Plane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/plane.md): Gets or sets the plane of the circle.
- [Radius](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/radius.md): Gets or sets the radius of this circle. Radii should be positive values.
- [Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/unset.md): (static) Gets a circle with Unset components.

## Methods

- [ClosestParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/closestparameter.md): Gets the parameter on the circle which is closest to a test point.
- [ClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/closestpoint.md): Gets the point on the circle which is closest to a test point.
- [DerivativeAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/derivativeat.md): Determines the value of the Nth derivative at a parameter.
- [EpsilonEquals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/epsilonequals.md): Check that all values in other are within epsilon of the values in this
- [IsInPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/isinplane.md): Evaluates whether or not this circle is co-planar with a given plane.
- [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/pointat.md): Circles use trigonometric parameterization: t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis.
- [Reverse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/reverse.md): Reverse the orientation of the circle. Changes the domain from [a,b] to [-b,-a].
- [Rotate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/rotate.md): (4 overloads) Rotates the circle through a given angle.
- [ICloneable.Clone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/system-icloneable-clone.md)
- [TangentAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/tangentat.md): Circles use trigonometric parameterization: t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis.
- [ToNurbsCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/tonurbscurve.md): (2 overloads) Constructs a nurbs curve representation of this circle. This amounts to the same as calling NurbsCurve.CreateFromCircle().
- [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/transform.md): Transforms this circle using an transformation matrix.
- [Translate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/translate.md): Moves the circle.
- [TryFitCircleToPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/tryfitcircletopoints.md): (static) Attempt to fit a circle through a set of points.
- [TryFitCircleTT](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/tryfitcirclett.md): (static) Try to fit a circle to two curves using tangent relationships.
- [TryFitCircleTTT](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/tryfitcirclettt.md): (static) Try to fit a circle to three curves using tangent relationships.
- [TrySmallestEnclosingCircle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.circle/trysmallestenclosingcircle.md): (static) Attempt to create the smallest circle enclosing a set of planar points.
