Struct piet_common::kurbo::Ellipse[]

pub struct Ellipse { /* fields omitted */ }

An ellipse.

Implementations

impl Ellipse

pub fn new(
    center: impl Into<Point>,
    radii: impl Into<Vec2>,
    x_rotation: f64
) -> Ellipse

Create A new ellipse with a given center, radii, and rotation.

The returned ellipse will be the result of taking a circle, stretching it by the radii along the x and y axes, then rotating it from the x asix by rotation radians, before finally translating the center to center.

Rotation is clockwise in a y-down coordinate system. For more on rotation, see Affine::rotate.

pub fn from_rect(rect: Rect) -> Ellipse

Returns the largest ellipse that can be bounded by this Rect.

This uses the absolute width and height of the rectangle.

This ellipse is always axis-aligned; to apply rotation you can call with_rotation with the result.

pub fn from_affine(affine: Affine) -> Ellipse

Create an ellipse from an affine transformation of the unit circle.

#[must_use]pub fn with_center(self, new_center: Point) -> Ellipse

Create a new Ellipse centered on the provided point.

#[must_use]pub fn with_radii(self, new_radii: Vec2) -> Ellipse

Create a new Ellipse with the provided radii.

#[must_use]pub fn with_rotation(self, rotation: f64) -> Ellipse

Create a new Ellipse, with the rotation replaced by rotation radians.

The rotation is clockwise, for a y-down coordinate system. For more on rotation, See Affine::rotate.

pub fn center(&self) -> Point

Returns the center of this ellipse.

pub fn radii(&self) -> Vec2

Returns the two radii of this ellipse.

The first number is the horizontal radius and the second is the vertical radius, before rotation.

pub fn rotation(&self) -> f64

The ellipse’s rotation, in radians.

This allows all possible ellipses to be drawn by always starting with an ellipse with the two radii on the x and y axes.

pub fn is_finite(&self) -> bool

Is this ellipse finite?

pub fn is_nan(&self) -> bool

Is this ellipse NaN?

Trait Implementations

impl Add<Vec2> for Ellipse

type Output = Ellipse

The resulting type after applying the + operator.

pub fn add(self, v: Vec2) -> Ellipse

In this context adding a Vec2 applies the corresponding translation to the eliipse.

impl Clone for Ellipse

impl Copy for Ellipse

impl Debug for Ellipse

impl Default for Ellipse

impl From<Circle> for Ellipse

impl Mul<Ellipse> for Affine

type Output = Ellipse

The resulting type after applying the * operator.

impl PartialEq<Ellipse> for Ellipse

impl Shape for Ellipse

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

The iterator returned by the path_elements method. Read more

impl StructuralPartialEq for Ellipse

impl Sub<Vec2> for Ellipse

type Output = Ellipse

The resulting type after applying the - operator.

pub fn sub(self, v: Vec2) -> Ellipse

In this context subtracting a Vec2 applies the corresponding translation to the eliipse.

Auto Trait Implementations

impl RefUnwindSafe for Ellipse

impl Send for Ellipse

impl Sync for Ellipse

impl Unpin for Ellipse

impl UnwindSafe for Ellipse

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[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[src]

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 
[src]

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.