[][src]Struct myelin_geometry::Vector

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

A vector

Fields

x: f64

The x component of the Vector

y: f64

The y component of the Vector

Implementations

impl Vector[src]

pub fn dot_product(self, other: Self) -> f64[src]

Calculates the dot product of itself and another vector

Examples

use myelin_geometry::Vector;
// a · b = c
let a = Vector { x: 2.0, y: 3.0 };
let b = Vector { x: -4.0, y: 10.0 };
let c = a.dot_product(b);
assert_eq!(22.0, c);

pub fn cross_product(self, other: Self) -> f64[src]

Calculates the cross product of itself and another vector

Examples

use myelin_geometry::Vector;
// a × b = c
let a = Vector { x: 2.0, y: 3.0 };
let b = Vector { x: -4.0, y: 10.0 };
let c = a.cross_product(b);
assert_eq!(32.0, c);

pub fn normal(self) -> Self[src]

Returns the vector's normal vector, i.e. a vector that is perpendicular to this vector

pub fn magnitude(self) -> f64[src]

Returns the magnitude of the vector, i.e. its length if viewed as a line

pub fn unit(self) -> Self[src]

Returns the unit vector of this vector, i.e. a vector with the same direction and a magnitude of 1

pub fn project_onto(self, other: Self) -> Self[src]

Returns the projection of this vector onto another vector

pub fn rotate(self, rotation: Radians) -> Self[src]

Rotate a vector by the given amount (counterclockwise)

pub fn rotate_clockwise(self, rotation: Radians) -> Self[src]

Rotate a vector by the given amount (clockwise)

pub fn negative(self) -> Self[src]

Negates the vector, returning a vector with the same magnitude pointing in the opposite direction.

Trait Implementations

impl Add<Vector> for Vector[src]

type Output = Vector

The resulting type after applying the + operator.

impl Clone for Vector[src]

impl Copy for Vector[src]

impl Debug for Vector[src]

impl Default for Vector[src]

impl<'de> Deserialize<'de> for Vector[src]

impl Div<f64> for Vector[src]

type Output = Vector

The resulting type after applying the / operator.

impl From<Point> for Vector[src]

impl From<Vector> for Point[src]

impl Mul<f64> for Vector[src]

type Output = Vector

The resulting type after applying the * operator.

impl PartialEq<Vector> for Vector[src]

impl Serialize for Vector[src]

impl StructuralPartialEq for Vector[src]

impl Sub<Vector> for Vector[src]

type Output = Vector

The resulting type after applying the - operator.

Auto Trait Implementations

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> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

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