# [−][src]Struct quicksilver::geom::Vector

```pub struct Vector {
pub x: f32,
pub y: f32,
}```

A 2D vector with an arbitrary numeric type

## Fields

The x coordinate of the vector

The y coordinate of the vector

## Methods

### `impl Vector`[src]

#### `pub const ZERO: Vector`[src]

A vector with x = 0, y = 0

#### `pub const X: Vector`[src]

A vector with x = 1, y = 0

#### `pub const Y: Vector`[src]

A vector with x = 0, y = 1

#### `pub const ONE: Vector`[src]

A vector with x = 1, y = 1

### `impl Vector`[src]

#### `pub fn new(    x: impl Scalar,     y: impl Scalar) -> Vector`[src]

Create a new vector

#### `pub fn into_vector(self) -> Vector2<f32>`[src]

Convert this vector into an nalgebra Vector2

#### `pub fn into_point(self) -> Point2<f32>`[src]

Convert this vector into an nalgebra Point2

#### `pub fn from_angle<T: Scalar>(angle: T) -> Vector`[src]

Create a unit vector at a given angle

#### `pub fn len2(self) -> f32`[src]

Get the squared length of the vector (faster than getting the length)

#### `pub fn len(self) -> f32`[src]

Get the length of the vector

#### ```#[must_use] pub fn clamp(    self,     min_bound: impl Into<Vector>,     max_bound: impl Into<Vector>) -> Vector```[src]

Clamp a vector somewhere between a minimum and a maximum

#### `pub fn cross(    self,     other: impl Into<Vector>) -> f32`[src]

Get the cross product of a vector

#### `pub fn dot(    self,     other: impl Into<Vector>) -> f32`[src]

Get the dot product of a vector

#### ```#[must_use] pub fn normalize(self) -> Vector```[src]

Normalize the vector's length from [0, 1]

#### ```#[must_use] pub fn x_comp(self) -> Vector```[src]

Get only the X component of the Vector, represented as a vector

#### ```#[must_use] pub fn y_comp(self) -> Vector```[src]

Get only the Y component of the Vector, represented as a vector

#### ```#[must_use] pub fn recip(self) -> Vector```[src]

Get the vector equal to Vector(1 / x, 1 / y)

#### ```#[must_use] pub fn times(    self,     other: impl Into<Vector>) -> Vector```[src]

Multiply the components in the matching places

#### `pub fn angle(self) -> f32`[src]

Get the angle a vector forms with the positive x-axis, counter clockwise

#### ```#[must_use] pub fn with_len(self, length: f32) -> Vector```[src]

Create a vector with the same angle and the given length

#### `pub fn distance(    self,     other: impl Into<Vector>) -> f32`[src]

Get the Euclidean distance to another vector

#### `pub fn min(    self,     other: impl Into<Vector>) -> Vector`[src]

Get a vector with the minimum of each component of this and another vector

#### `pub fn max(    self,     other: impl Into<Vector>) -> Vector`[src]

Get a vector with the maximum of each component of this and another vector

## Trait Implementations

### `impl Shape for Vector`[src]

#### ```#[must_use] fn intersects(&self, line: &Line) -> bool```[src]

If any area bounded by the shape falls on the line

#### ```#[must_use] fn overlaps_circle(&self, circle: &Circle) -> bool```[src]

If any area is bounded by both the shape and the circle

#### ```#[must_use] fn overlaps_rectangle(&self, rectangle: &Rectangle) -> bool```[src]

If any area is bounded by both the shape and the rectangle

#### ```#[must_use] fn constrain(&self, outer: &Rectangle) -> Self where    Self: Sized, ```[src]

Create a copy of the shape that is contained within the bound

#### ```#[must_use] fn with_center(    &self,     center: impl Into<Vector>) -> Self where    Self: Sized, ```[src]

Create a copy of the shape with an offset center

### `impl PartialEq<Vector> for Vector`[src]

#### ```#[must_use] fn ne(&self, other: &Rhs) -> bool```1.0.0[src]

This method tests for `!=`.

### `impl Clone for Vector`[src]

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

Performs copy-assignment from `source`. Read more

### `impl<T: Scalar> Div<T> for Vector`[src]

#### `type Output = Vector`

The resulting type after applying the `/` operator.

### `impl Add<Vector> for Vector`[src]

#### `type Output = Vector`

The resulting type after applying the `+` operator.

### `impl Sub<Vector> for Vector`[src]

#### `type Output = Vector`

The resulting type after applying the `-` operator.

### `impl<T: Scalar> Mul<T> for Vector`[src]

#### `type Output = Vector`

The resulting type after applying the `*` operator.

### `impl Mul<Vector> for Transform`[src]

Transform a vector

#### `type Output = Vector`

The resulting type after applying the `*` operator.

### `impl Neg for Vector`[src]

#### `type Output = Vector`

The resulting type after applying the `-` operator.

### `impl Distribution<Vector> for Standard`[src]

#### `fn sample_iter<R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T> where    R: Rng, `[src]

Create an iterator that generates random values of `T`, using `rng` as the source of randomness. Read more

## Blanket Implementations

### `impl<T, U> TryFrom for T where    T: From<U>, `[src]

#### `type Error = !`

🔬 This is a nightly-only experimental API. (`try_from`)

The type returned in the event of a conversion error.

### `impl<T, U> TryInto for T where    U: TryFrom<T>, `[src]

#### `type Error = <U as TryFrom<T>>::Error`

🔬 This is a nightly-only experimental API. (`try_from`)

The type returned in the event of a conversion error.

### `impl<T> SetParameter for T`

#### `fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where    T: Parameter<Self>, `

Sets `value` as a parameter of `self`.

### `impl<T> Scalar for T where    T: Copy + PartialEq<T> + Any + Debug, `[src]

#### `fn is<T>() -> bool where    T: Scalar, `[src]

Tests if `Self` the same as the type `T` Read more

### `impl<T> Same for T`

#### `type Output = T`

Should always be `Self`