Category:Physics Engine/Vectors

From Inspired-Lua Wiki
Revision as of 08:05, 18 July 2012 by Adriweb (talk | contribs)
Jump to navigation Jump to search

A vector is a 2-dimensional object with x and y components. Its type is TI.cpVect.


Vect
vector = physics.Vect(x, y)
vector = physics.Vect(angle)
vector = physics.Vect(vect)


Parameter Type Description
x in number The _x_ component of the vector
y in number The _y_ component of the vector
angle in number An angle in radians
vect in physics.Vect A vector
vector out physics.Vect A vector


Creates a vector with initial x and y component values. The second form creates a unit vector pointing in direction angle. The third form creates a copy of the input vector.

Introduced in platform.apiLevel = '2.0'


add
sum = physics.Vect:add(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect A vector to add to self
sum out physics.Vect The vector sum of self and vec


Returns the vector sum of self and vec.

The Vect class also implements the addition operator (+). Therefore vectors v1 and v2 can be added with the expression v1 + v2.

Introduced in platform.apiLevel = '2.0'


clamp
clamped = physics.Vect:clamp(len)


Parameter Type Description
self in physics.Vect The input vector
len in number The maximum length of the vector
clamped out physics.Vect A new vector with a length no longer than len


Returns a copy of self clamped to length len.

Introduced in platform.apiLevel = '2.0'


cross
crossprod = physics.Vect:cross(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The vector to cross with self
zmag out number The z magnitude of the cross product of self and vec


Returns the z magnitude of the cross product of self and vec.

Introduced in platform.apiLevel = '2.0'


dist
dist = physics.Vect:dist(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The vector to which to find the distance from self
dist out number The distance from self to vec


Returns the distance between self and vec.

Introduced in platform.apiLevel = '2.0'


distsq
distsq = physics.Vect:distsq(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The vector to which to find the distance squared from self
distsq out number The distance squared from self to vec


Returns the distance squared between self and vec. This routine is faster than Template:physics.Vect:dist when you only need to compare distances.

Introduced in platform.apiLevel = '2.0'


dot
dotprod = physics.Vect:dot(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
dotprod out number The scalar dot product of self and vec


Returns the scalar dot product of self and vec.

Introduced in platform.apiLevel = '2.0'


eql
isequ = physics.Vect:eql(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The vector against which to compare with self
isequ out boolean True if the components of self equal the components of vec


Returns true if the x and y components of self equal those of vec. Take the usual precautions when comparing floating point numbers for equality.

The Vect class also implements the equal comparison operator (==). Therefore vectors v1 and v2 can be compared with the expression v1 == v2.

Introduced in platform.apiLevel = '2.0'


length
len = physics.Vect:length()


Parameter Type Description
self in physics.Vect The input vector
len out number The length of vector self


Returns the magnitude of self.

Introduced in platform.apiLevel = '2.0'


lengthsq
lensq = physics.Vect:lengthsq()


Parameter Type Description
self in physics.Vect The input vector
lensq out number The length squared of vector self


Returns the length squared of self. This routine is faster than Template:Vect:length() when you only need to compare lengths.

Introduced in platform.apiLevel = '2.0'


lerp
v = physics.Vect:lerp(vec, f)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
f in number f_ is a fractional number from 0 to 1 representing the proportion of distance between _self and vec
v out physics.Vect A vector interpolated between self and vec


Returns the linear interpolation between self and vec as a vector. f_ is the fraction of distance between _self and vec.

May not behave as expected for f larger than 1.0 or less than 0.

NOTE


Introduced in platform.apiLevel = '2.0'


lerpconst
v = physics.Vect:lerpconst(vec, d)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
d in number The distance from self to vec to interpolate a new vector
v out physics.Vect


Returns a vector interpolated from self towards vec with length _d_.

May not behave as expected for d larger than 1.0 or less than 0.

NOTE


Introduced in platform.apiLevel = '2.0'


mult
v = physics.Vect:mult(factor)


Parameter Type Description
self in physics.Vect The input vector
factor in number The value to multiply by self
v out physics.Vect The resulting scaled vector


Multiplies a vector by a factor.

Introduced in platform.apiLevel = '2.0'


near
isnear = physics.Vect:near(vec, distance)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The value to multiply by self
distance in number The distance from vec
isnear out boolean True if self is within distance of vec


Determines if self is near another vector.

Introduced in platform.apiLevel = '2.0'


neg
v = physics.Vect:neg()


Parameter Type Description
self in physics.Vect The input vector
v out physics.Vect The resulting negated vector


Returns the negative of self.

The Vect class also implements the unary minus operator (-self).

Introduced in platform.apiLevel = '2.0'



normalize
normvec = physics.Vect:normalize()


Parameter Type Description
self in physics.Vect The input vector
normvec out physics.Vect The resulting normalized vector


Returns a normalized copy of self. The length of a normal vector is 1.

Introduced in platform.apiLevel = '2.0'


normalizeSafe
normvec = physics.Vect:normalizeSafe()


Parameter Type Description
self in physics.Vect The input vector
normvec out physics.Vect The resulting normalized vector


Returns a normalized copy of self. Protects against division by zero.

Introduced in platform.apiLevel = '2.0'


perp
perpvec = physics.Vect:perp()


Parameter Type Description
self in physics.Vect The input vector
perpvec out physics.Vect The resulting perpendicular vector


Returns a vector perpendicular to self. (90 degree rotation)

Introduced in platform.apiLevel = '2.0'


project
pvec = physics.Vect:project(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
pvec out physics.Vect The vector of self projected onto vec


Computes the projection of self onto another vector.

Introduced in platform.apiLevel = '2.0'


rotate
rvec = physics.Vect:rotate(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
rvec out physics.Vect The resulting rotated vector


Uses complex multiplication to rotate self by vec. Scaling will occur if self is not a unit vector.

Introduced in platform.apiLevel = '2.0'


rperp
perpvec = physics.Vect:rperp()


Parameter Type Description
self in physics.Vect The input vector
perpvec out physics.Vect The resulting perpendicular vector


Returns a vector perpendicular to self. (90 degree rotation)

Introduced in platform.apiLevel = '2.0'


setx
self = physics.Vect:setx(x)


Parameter Type Description
self in physics.Vect The vector to modify
x in number The new value of the _x_ component of the vector
self out physics.Vect The input vector is returned as the output


Changes the value of the x_ component of _self. Returns self.

Introduced in platform.apiLevel = '2.0'


sety
self = physics.Vect:sety(y)


Parameter Type Description
self in physics.Vect The vector to modify
y in number The new value of the _y_ component of the vector
self out physics.Vect The input vector is returned as the output


Changes the value of the y_ component of _self. Returns self.

Introduced in platform.apiLevel = '2.0'


slerp
v = physics.Vect:slerp(vec, f)


Parameter Type Description
self in physics.Vect A unit vector
vec in physics.Vect The other unit vector
f in number f_ is a fractional number from 0 to 1 representing the proportion of distance between _self and vec
v out physics.Vect A vector interpolated between self and vec


Computes a spherical linear interpolation between unit vectors self and vec.

See [http://en.wikipedia.org/wiki/Slerp] for a discussion of the meaning, value, and usage of spherical linear interpolation.

INFO


physics.Vect:slerp

local vect1 = physics.Vect(math.pi/3) -- unit vector with angle pi/3 radians
local vect2 = physics.Vect(math.pi/2) -- unit vector with angle pi/2 radians
local result = vect1:slerp(vect2, 0.55) -- compute spherical linear interpolation

This routine computes meaningful results only when the two inputs are unit vectors.

May not behave as expected for f larger than 1.0 or less than 0.

NOTE: Notes


Introduced in platform.apiLevel = '2.0'


slerpconst
v = physics.Vect:slerpconst(vec, angle)


Parameter Type Description
self in physics.Vect A unit vector
vec in physics.Vect The other unit vector
angle in number The maximum angle between self and vec to interpolate a new vector
v out physics.Vect


Returns the spherical linear interpolation from self towards vec but by no more than angle in radians.

See [http://en.wikipedia.org/wiki/Slerp] for a discussion of the meaning, value, and usage of spherical linear interpolation.

INFO


This routine computes meaningful results only when the two inputs are unit vectors.

NOTE: NOTE


Introduced in platform.apiLevel = '2.0'


sub
diff = physics.Vect:sub(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect A vector to subtract from self
diff out physics.Vect The vector difference between self and vec


Returns the vector difference of self and vec.

The Vect class also implements the subtraction operator (-). Therefore vector v2 can be subtracted from v1 with the expression v1 - v2.

Introduced in platform.apiLevel = '2.0'


toangle
angle = physics.Vect:toangle()


Parameter Type Description
self in physics.Vect The input vector
angle out number The angle of self


Returns the angle in radians of self.

Introduced in platform.apiLevel = '2.0'


unrotate
uvec = physics.Vect:unrotate(vec)


Parameter Type Description
self in physics.Vect The input vector
vec in physics.Vect The other vector
uvec out physics.Vect The resulting unrotated vector


Inverse of Template:physics.Vect:rotate(vec).

Introduced in platform.apiLevel = '2.0'


x
x = physics.Vect:x()


Parameter Type Description
self in physics.Vect The input vector
x out number The value of the _x_ component of the vector


Returns the value of the _x_ component of the input vector.

Introduced in platform.apiLevel = '2.0'


y
y = physics.Vect:y()


Parameter Type Description
self in physics.Vect The input vector
y out number The value of the _y_ component of the vector


Returns the value of the _y_ component of the input vector.

Introduced in platform.apiLevel = '2.0'

This category currently contains no pages or media.