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).
👎 Deprecated:
Use Vec2::ZERO instead
👎 Deprecated:
Use Vec2::INFINITY instead
Set both x
and y
to the same value.
Safe normalize: returns zero if input is zero.
pub fn rot90(self) -> Self
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);
pub fn floor(self) -> Self
pub fn round(self) -> Self
pub fn ceil(self) -> Self
True if all members are also finite.
True if any member is NaN.
pub fn min(self, other: Self) -> Self
pub fn max(self, other: Self) -> Self
Returns the minimum of self.x
and self.y
.
Returns the maximum of self.x
and self.y
.
pub fn clamp(self, min: Self, max: Self) -> Self
The resulting type after applying the +
operator.
The resulting type after applying the +
operator.
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
The resulting type after applying the /
operator.
The resulting type after applying the /
operator.
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.
Element-wise multiplication
The resulting type after applying the *
operator.
The resulting type after applying the *
operator.
The resulting type after applying the *
operator.
The resulting type after applying the -
operator.
fn at_least(self, lower_limit: Self) -> Self
More readable version of self.max(lower_limit)
fn at_most(self, upper_limit: Self) -> Self
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.
The resulting type after applying the -
operator.
impl<T> Any for T where
T: 'static + ?Sized,
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
impl<T, U> Into<U> for T where
U: From<T>,
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
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
The type returned in the event of a conversion error.