Documentation ¶
Overview ¶
Package vec2 contains a 2D float32 vector type T and functions.
Index ¶
- Variables
- func Angle(a, b *T) float32
- func Cosine(a, b *T) float32
- func Cross(a, b *T) float32
- func Dot(a, b *T) float32
- func IsLeftWinding(a, b *T) bool
- func IsRightWinding(a, b *T) bool
- func PracticallyEquals(v1, v2, allowedDelta float32) bool
- func Sinus(a, b *T) float32
- type Rect
- type T
- func (vec *T) Abs() *T
- func (vec *T) Absed() T
- func (vec *T) Add(v *T) *T
- func (vec *T) Added(v *T) T
- func (vec *T) Angle() float32
- func (vec *T) Clamp(min, max *T) *T
- func (vec *T) Clamp01() *T
- func (vec *T) Clamped(min, max *T) T
- func (vec *T) Clamped01() T
- func (vec *T) Cols() int
- func (vec *T) Get(col, row int) float32
- func (vec *T) Invert() *T
- func (vec *T) Inverted() T
- func (vec *T) IsZero() bool
- func (vec *T) Length() float32
- func (vec *T) LengthSqr() float32
- func (vec *T) Mul(v *T) *T
- func (vec *T) Muled(v *T) T
- func (vec *T) Normal() T
- func (vec *T) NormalCCW() T
- func (vec *T) Normalize() *T
- func (vec *T) Normalized() T
- func (vec *T) PracticallyEquals(compareVector *T, allowedDelta float32) bool
- func (vec *T) Rotate(angle float32) *T
- func (vec *T) Rotate90DegLeft() *T
- func (vec *T) Rotate90DegRight() *T
- func (vec *T) RotateAroundPoint(point *T, angle float32) *T
- func (vec *T) Rotated(angle float32) T
- func (vec *T) Rows() int
- func (vec *T) Scale(f float32) *T
- func (vec *T) Scaled(f float32) T
- func (vec *T) Size() int
- func (vec *T) Slice() []float32
- func (vec *T) String() string
- func (vec *T) Sub(v *T) *T
- func (vec *T) Subed(v *T) T
Constants ¶
This section is empty.
Variables ¶
var ( // Zero holds a zero vector. Zero = T{} // UnitX holds a vector with X set to one. UnitX = T{1, 0} // UnitY holds a vector with Y set to one. UnitY = T{0, 1} // UnitXY holds a vector with X and Y set to one. UnitXY = T{1, 1} // MinVal holds a vector with the smallest possible component values. MinVal = T{-math.MaxFloat32, -math.MaxFloat32} // MaxVal holds a vector with the highest possible component values. MaxVal = T{+math.MaxFloat32, +math.MaxFloat32} )
Functions ¶
func Angle ¶
Angle returns the angle value of the (shortest/smallest) angle between the two vectors a and b. The returned value is in the range 0 ≤ angle ≤ Pi radians.
func Cosine ¶
Cosine returns the cosine value of the angle between the two vectors. The returned cosine value is in the range -1.0 ≤ value ≤ 1.0.
func Cross ¶
Cross returns the "cross product" of two vectors. In 2D space it is a scalar value. It is the same as the determinant value of the 2D matrix constructed by the two vectors. Cross product in 2D is not well-defined but this is the implementation stated at https://mathworld.wolfram.com/CrossProduct.html .
func IsLeftWinding ¶
IsLeftWinding returns if the angle from a to b is left winding. Two parallell or anti parallell vectors will give a false result.
func IsRightWinding ¶
IsRightWinding returns if the angle from a to b is right winding. Two parallell or anti parallell vectors will give a false result.
func PracticallyEquals ¶
PracticallyEquals compares two values if they are equal with each other within a delta tolerance.
Types ¶
type Rect ¶
Rect is a coordinate system aligned rectangle defined by a Min and Max vector.
func (*Rect) ContainsPoint ¶
ContainsPoint returns if a point is contained within the rectangle.
func (*Rect) Intersects ¶
type T ¶
type T [2]float32
T represents a 2D vector.
func Add ¶
Add adds the composants of the two vectors and returns a new vector with the sum of the two vectors.
func Interpolate ¶
Interpolate interpolates between a and b at t (0,1).
func (*T) Clamped ¶
Clamped returns a copy of the vector with the components clamped to be in the range of min to max.
func (*T) Clamped01 ¶
Clamped01 returns a copy of the vector with the components clamped to be in the range of 0 to 1.
func (*T) LengthSqr ¶
LengthSqr returns the squared length of the vector. See also Length and Normalize.
func (*T) Muled ¶
Muled multiplies the components of the vector with the respective components of v and returns a copy of the result
func (*T) Normal ¶
Normal returns a new normalized orthogonal vector. The normal is orthogonal clockwise to the vector. See also function Rotate90DegRight.
func (*T) NormalCCW ¶
NormalCCW returns a new normalized orthogonal vector. The normal is orthogonal counterclockwise to the vector. See also function Rotate90DegLeft.
func (*T) Normalized ¶
Normalized returns a unit length normalized copy of the vector.
func (*T) PracticallyEquals ¶
PracticallyEquals compares two vectors if they are equal with each other within a delta tolerance.
func (*T) Rotate90DegLeft ¶
Rotate90DegLeft rotates the vector 90 degrees left (counter-clockwise). See also function NormalCCW.
func (*T) Rotate90DegRight ¶
Rotate90DegRight rotates the vector 90 degrees right (clockwise). See also function Normal.
func (*T) RotateAroundPoint ¶
RotateAroundPoint rotates the vector counter-clockwise around a point.