[]Struct druid::Point

pub struct Point {
    pub x: f64,
    pub y: f64,
}

A 2D point.

Fields

x: f64

The x coordinate.

y: f64

The y coordinate.

Implementations

impl Point

pub const ZERO: Point

The point (0, 0).

pub const ORIGIN: Point

The point at the origin; (0, 0).

pub const fn new(x: f64, y: f64) -> Point

Create a new Point with the provided x and y coordinates.

pub const fn to_vec2(self) -> Vec2

Convert this point into a Vec2.

pub fn lerp(self, other: Point, t: f64) -> Point

Linearly interpolate between two points.

pub fn midpoint(self, other: Point) -> Point

Determine the midpoint of two points.

pub fn distance(self, other: Point) -> f64

Euclidean distance.

pub fn round(self) -> Point

Returns a new Point, with x and y rounded to the nearest integer.

Examples

use kurbo::Point;
let a = Point::new(3.3, 3.6).round();
let b = Point::new(3.0, -3.1).round();
assert_eq!(a.x, 3.0);
assert_eq!(a.y, 4.0);
assert_eq!(b.x, 3.0);
assert_eq!(b.y, -3.0);

pub fn ceil(self) -> Point

Returns a new Point, with x and y rounded up to the nearest integer, unless they are already an integer.

Examples

use kurbo::Point;
let a = Point::new(3.3, 3.6).ceil();
let b = Point::new(3.0, -3.1).ceil();
assert_eq!(a.x, 4.0);
assert_eq!(a.y, 4.0);
assert_eq!(b.x, 3.0);
assert_eq!(b.y, -3.0);

pub fn floor(self) -> Point

Returns a new Point, with x and y rounded down to the nearest integer, unless they are already an integer.

Examples

use kurbo::Point;
let a = Point::new(3.3, 3.6).floor();
let b = Point::new(3.0, -3.1).floor();
assert_eq!(a.x, 3.0);
assert_eq!(a.y, 3.0);
assert_eq!(b.x, 3.0);
assert_eq!(b.y, -4.0);

pub fn expand(self) -> Point

Returns a new Point, with x and y rounded away from zero to the nearest integer, unless they are already an integer.

Examples

use kurbo::Point;
let a = Point::new(3.3, 3.6).expand();
let b = Point::new(3.0, -3.1).expand();
assert_eq!(a.x, 4.0);
assert_eq!(a.y, 4.0);
assert_eq!(b.x, 3.0);
assert_eq!(b.y, -4.0);

pub fn trunc(self) -> Point

Returns a new Point, with x and y rounded towards zero to the nearest integer, unless they are already an integer.

Examples

use kurbo::Point;
let a = Point::new(3.3, 3.6).trunc();
let b = Point::new(3.0, -3.1).trunc();
assert_eq!(a.x, 3.0);
assert_eq!(a.y, 3.0);
assert_eq!(b.x, 3.0);
assert_eq!(b.y, -3.0);

Trait Implementations

impl Add<Vec2> for Point

type Output = Point

The resulting type after applying the + operator.

impl AddAssign<Vec2> for Point

impl Clone for Point

impl Copy for Point

impl Data for Point[src]

impl Debug for Point

impl Default for Point

impl Display for Point

impl From<(f64, f64)> for Point

impl Into<Value> for Point[src]

impl Mul<Point> for Affine

type Output = Point

The resulting type after applying the * operator.

impl Mul<Point> for TranslateScale

type Output = Point

The resulting type after applying the * operator.

impl PartialEq<Point> for Point

impl Scalable for Point[src]

fn to_px(&self, scale: &Scale) -> Point[src]

Converts a Point from display points into pixels, using the x axis scale factor for x and the y axis scale factor for y.

fn to_dp(&self, scale: &Scale) -> Point[src]

Converts a Point from pixels into display points, using the x axis scale factor for x and the y axis scale factor for y.

impl StructuralPartialEq for Point

impl Sub<Point> for Point

type Output = Vec2

The resulting type after applying the - operator.

impl Sub<Vec2> for Point

type Output = Point

The resulting type after applying the - operator.

impl SubAssign<Vec2> for Point

impl<'a> ValueType<'a> for Point[src]

type Owned = Point

The corresponding owned type.

Auto Trait Implementations

impl RefUnwindSafe for Point

impl Send for Point

impl Sync for Point

impl Unpin for Point

impl UnwindSafe for Point

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> ToString for T where
    T: Display + ?Sized
[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.