[]Struct druid::piet::kurbo::QuadBez

pub struct QuadBez {
    pub p0: Point,
    pub p1: Point,
    pub p2: Point,
}

A single quadratic Bézier segment.

Fields

p0: Pointp1: Pointp2: Point

Methods

impl QuadBez

pub fn new<V>(p0: V, p1: V, p2: V) -> QuadBez where
    V: Into<Point>, 

Create a new quadratic Bézier segment.

pub fn raise(&self) -> CubicBez

Raise the order by 1.

Returns a cubic Bézier segment that exactly represents this quadratic.

Trait Implementations

impl Clone for QuadBez

impl Copy for QuadBez

impl Data for QuadBez[src]

impl Debug for QuadBez

impl From<QuadBez> for PathSeg

impl Mul<QuadBez> for TranslateScale

type Output = QuadBez

The resulting type after applying the * operator.

impl Mul<QuadBez> for Affine

type Output = QuadBez

The resulting type after applying the * operator.

impl ParamCurve for QuadBez

fn subdivide(&self) -> (QuadBez, QuadBez)

Subdivide into halves, using de Casteljau.

impl ParamCurveArclen for QuadBez

fn arclen(&self, _accuracy: f64) -> f64

Arclength of a quadratic Bézier segment.

This computation is based on an analytical formula. Since that formula suffers from numerical instability when the curve is very close to a straight line, we detect that case and fall back to Legendre-Gauss quadrature.

Accuracy should be better than 1e-13 over the entire range.

Adapted from http://www.malczak.linuxpl.com/blog/quadratic-bezier-curve-length/ with permission.

impl ParamCurveArea for QuadBez

impl ParamCurveCurvature for QuadBez

impl ParamCurveDeriv for QuadBez

type DerivResult = Line

The parametric curve obtained by taking the derivative of this one.

impl ParamCurveExtrema for QuadBez

impl ParamCurveNearest for QuadBez

fn nearest(&self, p: Point, _accuracy: f64) -> (f64, f64)

Find nearest point, using analytical algorithm based on cubic root finding.

impl PartialEq<QuadBez> for QuadBez

impl StructuralPartialEq for QuadBez

Auto Trait Implementations

impl RefUnwindSafe for QuadBez

impl Send for QuadBez

impl Sync for QuadBez

impl Unpin for QuadBez

impl UnwindSafe for QuadBez

Blanket Implementations

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

impl<T> AnyEq for T where
    T: PartialEq<T> + Any
[src]

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

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

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

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

impl<T> RoundFrom<T> for T

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 

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

type Owned = T

The resulting type after obtaining ownership.

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.