[][src]Struct kurbo::CubicBez

pub struct CubicBez {
    pub p0: Point,
    pub p1: Point,
    pub p2: Point,
    pub p3: Point,
}

A single cubic Bézier segment.

Fields

p0: Pointp1: Pointp2: Pointp3: Point

Methods

impl CubicBez[src]

pub fn new<P: Into<Point>>(p0: P, p1: P, p2: P, p3: P) -> CubicBez[src]

Create a new cubic Bézier segment.

pub fn to_quads(
    &self,
    accuracy: f64
) -> impl Iterator<Item = (f64, f64, QuadBez)>
[src]

Convert to quadratic Béziers.

The iterator returns the start and end parameter in the cubic of each quadratic segment, along with the quadratic.

Note that the resulting quadratic Béziers are not in general G1 continuous; they are optimized for minimizing distance error.

Trait Implementations

impl ParamCurve for CubicBez[src]

fn subdivide(&self) -> (CubicBez, CubicBez)[src]

Subdivide into halves, using de Casteljau.

impl ParamCurveDeriv for CubicBez[src]

type DerivResult = QuadBez

fn gauss_arclen(&self, coeffs: &[(f64, f64)]) -> f64[src]

Estimate arclength using Gaussian quadrature. Read more

impl ParamCurveArclen for CubicBez[src]

fn arclen(&self, accuracy: f64) -> f64[src]

Arclength of a cubic Bézier segment.

This is an adaptive subdivision approach using Legendre-Gauss quadrature in the base case, and an error estimate to decide when to subdivide.

fn inv_arclen(&self, arclen: f64, accuracy: f64) -> f64[src]

Solve for the parameter that has the given arclength from the start. Read more

impl ParamCurveArea for CubicBez[src]

impl ParamCurveNearest for CubicBez[src]

fn nearest(&self, p: Point, accuracy: f64) -> (f64, f64)[src]

Find nearest point, using subdivision.

impl ParamCurveCurvature for CubicBez[src]

fn curvature(&self, t: f64) -> f64[src]

Compute the signed curvature at parameter t.

impl ParamCurveExtrema for CubicBez[src]

fn extrema_ranges(&self) -> ArrayVec<[Range<f64>; 5]>[src]

Return parameter ranges, each of which is monotonic within the range.

fn bounding_box(&self) -> Rect[src]

The smallest rectangle that encloses the curve in the range (0..1).

impl Copy for CubicBez[src]

impl Clone for CubicBez[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Mul<CubicBez> for Affine[src]

type Output = CubicBez

The resulting type after applying the * operator.

impl Debug for CubicBez[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]