# BezierF struct

Namespace: [Grasshopper2.Eto.Drawing](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.eto.drawing.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public readonly struct BezierF
```

Represents a single unweighted, four point bezier span.

## Constructors

- [BezierF](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/ctor.md): (3 overloads) Create a new bezier segment from four control point coordinates.

## Properties

- [Bounds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/bounds.md): Gets the boundingbox of this segment.
- [Classification](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/classification.md): Gets the classification of the bezier type based on its canonical form.
- [IsClosed](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/isclosed.md): Gets whether this curve is closed.
- [IsEmpty](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/isempty.md): Geta whether this bezier segment is empty.
- [IsValid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/isvalid.md): Gets whether all the coordinates are valid numbers.
- [Length](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/length.md): Gets the length of this segment. The length is computed to a tolerance of 1e-4, so if you need a more accurate length, you need to scale the curve up first, then divide the resulting length by your scaling factor.
- [P0](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/p0.md): Gets the first control point of the bezier. This is synonymous with the start of the segment.
- [P1](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/p1.md): Gets the second control point of the bezier.
- [P2](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/p2.md): Gets the third control-point of the bezier.
- [P3](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/p3.md): Gets the fourth (and final) control-point of the bezier. This is synonymous with the end of the segment.
- [T0](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/t0.md): Gets the normalised tangent at the start of the segment.
- [T3](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/t3.md): Gets the normalised tangent at the end of the segment.

## Methods

- [AlignedForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/alignedform.md): Compute the axis aligned bezier segment. This involves moving P0 to (0,0) and rotating the entire segment until the y-coordinate of P3 equals zero.
- [CanonicalForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/canonicalform.md): Compute the canonical bezier form. The canonical form consists of a linear transformation such that P0 ends up at (0,0), P1 ends up at (0,1) and P2 ends up at (1,1). The exact location of P3 can then be used to infer certain properties of the original bezier segment, such as intersections, cusps and inflection count.
- [Distance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/distance.md): Gets the distance from this bezier to a point.
- [DistanceFromStart](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/distancefromstart.md): Find the parameter on the curve with a certain Euclidean distance from the start.
- [Extremes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/extremes.md): Solve all parameters along the segment where the x and y coordinates are local extremes.
- [Inflections](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/inflections.md): Compute the inflection parameters for this curve.
- [ParameterAtLength](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/parameteratlength.md): Gets the bezier parameter at the arc-length. This is approximate.
- [PointAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/pointat.md): Evaluate the point at a given parameter.
- [Project](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/project.md): Find the parameter on the finite segment closest to the given point.
- [Reverse](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/reverse.md): Create a reversed bezier segment.
- [Split](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/split.md): Split this curve into two subcurves.
- [TangentAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/tangentat.md): Evaluate the (non-unitised) tangent at a given parameter.
- [ToPolyline](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/topolyline.md): Convert this bezier to an array of points. Regardless of maxError, there will always be points at extremes and inflection points.
- [Translate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/translate.md): Move this bezier.
- [Trim](https://developer.rhino3d.com/api/gh2/type/grasshopper2.eto.drawing.bezierf/trim.md): Trim part of this bezier.
