[][src]Struct kurbo::Vec2

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

A 2D vector.

This is intended primarily for a vector in the mathematical sense, but it can be interpreted as a translation, and converted to and from a point (vector relative to the origin) and size.

Fields

x: f64y: f64

Methods

impl Vec2[src]

pub fn new(x: f64, y: f64) -> Vec2[src]

Create a new vector.

pub fn to_point(self) -> Point[src]

Convert this vector into a Point.

pub fn to_size(self) -> Size[src]

Convert this vector into a Size.

pub fn dot(&self, other: Vec2) -> f64[src]

Dot product of two vectors.

pub fn cross(&self, other: Vec2) -> f64[src]

Cross product of two vectors.

This is signed so that (0, 1) × (1, 0) = 1.

pub fn hypot(&self) -> f64[src]

Magnitude of vector.

pub fn hypot2(&self) -> f64[src]

Magnitude squared of vector.

pub fn atan2(&self) -> f64[src]

Angle of vector.

If the vector is interpreted as a complex number, this is the argument.

pub fn from_angle(th: f64) -> Vec2[src]

A unit vector of the given angle.

With th at zero, the result is the positive X unit vector, and at π/2, it is the positive Y unit vector.

Thus, in a Y-down coordinate system (as is common for graphics), it is a clockwise rotation, and in Y-up (traditional for math), it is anti-clockwise. This convention is consistent with Affine::rotate.

pub fn lerp(&self, other: Vec2, t: f64) -> Vec2[src]

Linearly interpolate between two vectors.

Trait Implementations

impl PartialEq<Vec2> for Vec2[src]

impl Copy for Vec2[src]

impl Default for Vec2[src]

impl From<(f64, f64)> for Vec2[src]

impl From<Vec2> for (f64, f64)[src]

impl From<Vec2> for Vector2<f64>[src]

impl From<Vector2<f64>> for Vec2[src]

impl Clone for Vec2[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Add<Vec2> for Circle[src]

type Output = Circle

The resulting type after applying the + operator.

impl Add<Vec2> for Point[src]

type Output = Point

The resulting type after applying the + operator.

impl Add<Vec2> for Rect[src]

type Output = Rect

The resulting type after applying the + operator.

impl Add<Vec2> for Vec2[src]

type Output = Vec2

The resulting type after applying the + operator.

impl Sub<Vec2> for Circle[src]

type Output = Circle

The resulting type after applying the - operator.

impl Sub<Vec2> for Point[src]

type Output = Point

The resulting type after applying the - operator.

impl Sub<Vec2> for Rect[src]

type Output = Rect

The resulting type after applying the - operator.

impl Sub<Vec2> for Vec2[src]

type Output = Vec2

The resulting type after applying the - operator.

impl Mul<f64> for Vec2[src]

type Output = Vec2

The resulting type after applying the * operator.

impl Mul<Vec2> for f64[src]

type Output = Vec2

The resulting type after applying the * operator.

impl Div<f64> for Vec2[src]

type Output = Vec2

The resulting type after applying the / operator.

fn div(self, other: f64) -> Vec2[src]

Note: division by a scalar is implemented by multiplying by the reciprocal.

This is more efficient but has different roundoff behavior than division.

impl Neg for Vec2[src]

type Output = Vec2

The resulting type after applying the - operator.

impl AddAssign<Vec2> for Point[src]

impl AddAssign<Vec2> for Vec2[src]

impl SubAssign<Vec2> for Point[src]

impl SubAssign<Vec2> for Vec2[src]

impl MulAssign<f64> for Vec2[src]

impl DivAssign<f64> for Vec2[src]

impl Debug for Vec2[src]

Auto Trait Implementations

impl Send for Vec2

impl Unpin for Vec2

impl Sync for Vec2

impl UnwindSafe for Vec2

impl RefUnwindSafe for Vec2

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.

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

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

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