# Struct emath::Vec2[−][src]

```pub struct Vec2 {
pub x: f32,
pub y: f32,
}```
Expand description

A vector has a direction and length. A `Vec2` is often used to represent a size.

emath represents positions using `crate::Pos2`.

Normally the units are points (logical pixels).

## Fields

`x: f32``y: f32`

## Implementations

👎 Deprecated:

👎 Deprecated:

Set both `x` and `y` to the same value.

Safe normalize: returns zero if input is zero.

Rotates the vector by 90°, i.e positive X to positive Y (clockwise in egui coordinates).

Measures the angle of the vector.

```use std::f32::consts::TAU;

assert_eq!(Vec2::ZERO.angle(), 0.0);
assert_eq!(Vec2::angled(0.0).angle(), 0.0);
assert_eq!(Vec2::angled(1.0).angle(), 1.0);
assert_eq!(Vec2::X.angle(), 0.0);
assert_eq!(Vec2::Y.angle(), 0.25 * TAU);

assert_eq!(Vec2::RIGHT.angle(), 0.0);
assert_eq!(Vec2::DOWN.angle(), 0.25 * TAU);
assert_eq!(Vec2::UP.angle(), -0.25 * TAU);```

Create a unit vector with the given angle (in radians).

• An angle of zero gives the unit X axis.
• An angle of 𝞃/4 = 90° gives the unit Y axis.
```use std::f32::consts::TAU;

assert_eq!(Vec2::angled(0.0), Vec2::X);
assert!((Vec2::angled(0.25 * TAU) - Vec2::Y).length() < 1e-5);```

True if all members are also finite.

True if any member is NaN.

Returns the minimum of `self.x` and `self.y`.

Returns the maximum of `self.x` and `self.y`.

## Trait Implementations

The resulting type after applying the `+` operator.

Performs the `+` operation. Read more

The resulting type after applying the `+` operator.

Performs the `+` operation. Read more

Performs the `+=` operation. Read more

Performs the `+=` operation. Read more

Returns a copy of the value. Read more

Performs copy-assignment from `source`. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Element-wise division

The resulting type after applying the `/` operator.

Performs the `/` operation. Read more

The resulting type after applying the `/` operator.

Performs the `/` operation. Read more

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

The returned type after indexing.

Performs the indexing (`container[index]`) operation. Read more

Performs the mutable indexing (`container[index]`) operation. Read more

Rotates (and maybe scales) the vector.

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

Element-wise multiplication

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

Performs the `*=` operation. Read more

The resulting type after applying the `-` operator.

Performs the unary `-` operation. Read more

More readable version of `self.max(lower_limit)`

More readable version of `self.min(upper_limit)`

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

This method tests for `!=`.

The resulting type after applying the `-` operator.

Performs the `-` operation. Read more

The resulting type after applying the `-` operator.

Performs the `-` operation. Read more

Performs the `-=` operation. Read more

Performs the `-=` operation. Read more

## Blanket Implementations

Gets the `TypeId` of `self`. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

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