[−]Struct piet_common::kurbo::Vec2
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: f64Methods
impl Vec2
pub fn new(x: f64, y: f64) -> Vec2
Create a new vector.
pub fn to_point(self) -> Point
Convert this vector into a Point.
pub fn to_size(self) -> Size
Convert this vector into a Size.
pub fn dot(&self, other: Vec2) -> f64
Dot product of two vectors.
pub fn cross(&self, other: Vec2) -> f64
Cross product of two vectors.
This is signed so that (0, 1) × (1, 0) = 1.
pub fn hypot(&self) -> f64
Magnitude of vector.
pub fn hypot2(&self) -> f64
Magnitude squared of vector.
pub fn atan2(&self) -> f64
Angle of vector.
If the vector is interpreted as a complex number, this is the argument.
pub fn from_angle(th: f64) -> Vec2
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
Linearly interpolate between two vectors.
Trait Implementations
impl RoundFrom<(f32, f32)> for Vec2[src]
impl RoundFrom<Vec2> for (f32, f32)[src]
impl RoundFrom<Vec2> for (f64, f64)[src]
impl RoundFrom<(f64, f64)> for Vec2[src]
impl Default for Vec2
impl Copy for Vec2
impl SubAssign<Vec2> for Vec2
fn sub_assign(&mut self, other: Vec2)
impl SubAssign<Vec2> for Point
fn sub_assign(&mut self, other: Vec2)
impl Sub<Vec2> for Point
type Output = Point
The resulting type after applying the - operator.
fn sub(self, other: Vec2) -> Point
impl Sub<Vec2> for Vec2
type Output = Vec2
The resulting type after applying the - operator.
fn sub(self, other: Vec2) -> Vec2
impl Sub<Vec2> for Circle
type Output = Circle
The resulting type after applying the - operator.
fn sub(self, v: Vec2) -> Circle
impl Sub<Vec2> for Rect
impl Mul<f64> for Vec2
type Output = Vec2
The resulting type after applying the * operator.
fn mul(self, other: f64) -> Vec2
impl AddAssign<Vec2> for Point
fn add_assign(&mut self, other: Vec2)
impl AddAssign<Vec2> for Vec2
fn add_assign(&mut self, other: Vec2)
impl Clone for Vec2
fn clone(&self) -> Vec2
fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
impl Debug for Vec2
impl DivAssign<f64> for Vec2
fn div_assign(&mut self, other: f64)
impl Div<f64> for Vec2
type Output = Vec2
The resulting type after applying the / operator.
fn div(self, other: f64) -> Vec2
Note: division by a scalar is implemented by multiplying by the reciprocal.
This is more efficient but has different roundoff behavior than division.
impl MulAssign<f64> for Vec2
fn mul_assign(&mut self, other: f64)
impl Add<Vec2> for Rect
impl Add<Vec2> for Circle
type Output = Circle
The resulting type after applying the + operator.
fn add(self, v: Vec2) -> Circle
impl Add<Vec2> for Point
type Output = Point
The resulting type after applying the + operator.
fn add(self, other: Vec2) -> Point
impl Add<Vec2> for Vec2
type Output = Vec2
The resulting type after applying the + operator.
fn add(self, other: Vec2) -> Vec2
impl PartialEq<Vec2> for Vec2
impl From<(f64, f64)> for Vec2
impl Neg for Vec2
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]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> RoundFrom<T> for T[src]
fn round_from(x: T) -> T[src]
impl<T, U> RoundInto<U> for T where
U: RoundFrom<T>, [src]
U: RoundFrom<T>,