[]Struct piet_common::kurbo::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 Debug for Point

impl Default for Point

impl Display for Point

impl From<(f64, f64)> for Point

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 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

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> 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> 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.