[]Struct druid::piet::kurbo::Arc

pub struct Arc {
    pub center: Point,
    pub radii: Vec2,
    pub start_angle: f64,
    pub sweep_angle: f64,
    pub x_rotation: f64,
}

A single arc segment.

Fields

center: Point

The arc's centre point.

radii: Vec2

The arc's radii, where the vector's x-component is the radius in the positive x direction after applying x_rotation.

start_angle: f64

The start angle in radians.

sweep_angle: f64

The angle between the start and end of the arc, in radians.

x_rotation: f64

How much the arc is rotated, in radians.

Implementations

impl Arc

pub fn append_iter(&self, tolerance: f64) -> ArcAppendIter

Create an iterator generating Bezier path elements.

The generated elemets can be append to an existing bezier path.

pub fn to_cubic_beziers<P>(self, tolerance: f64, p: P) where
    P: FnMut(Point, Point, Point), 

Converts an Arc into a series of cubic bezier segments.

Closure will be invoked for each segment.

impl Arc

pub fn from_svg_arc(arc: &SvgArc) -> Option<Arc>

Creates an Arc from a SvgArc.

Returns None if arc is actually a straight line.

Trait Implementations

impl Clone for Arc

impl Copy for Arc

impl Data for Arc[src]

impl Debug for Arc

impl PartialEq<Arc> for Arc

impl Shape for Arc

type BezPathIter = Chain<Once<PathEl>, ArcAppendIter>

The iterator resulting from to_bez_path.

fn area(&self) -> f64

Note: shape isn't closed so area is not well defined.

fn perimeter(&self, accuracy: f64) -> f64

Note: Finding the perimiter of an ellipse is fairly involved, so for now just approximate by using the bezier curve representation. (See https://en.wikipedia.org/wiki/Ellipse#Circumference)

fn winding(&self, pt: Point) -> i32

Note: shape isn't closed so a point's winding number is not well defined.

impl StructuralPartialEq for Arc

Auto Trait Implementations

impl RefUnwindSafe for Arc

impl Send for Arc

impl Sync for Arc

impl Unpin for Arc

impl UnwindSafe for Arc

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> Same<T> for T

type Output = T

Should always be Self

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.