2010-04-11 14:22:27 +00:00
|
|
|
import mathutils
|
2010-01-31 21:52:26 +00:00
|
|
|
|
|
|
|
# zero length vector
|
2011-07-26 07:39:00 +00:00
|
|
|
vec = mathutils.Vector((0.0, 0.0, 1.0))
|
2010-01-31 21:52:26 +00:00
|
|
|
|
|
|
|
# unit length vector
|
|
|
|
vec_a = vec.copy().normalize()
|
|
|
|
|
2011-07-26 07:39:00 +00:00
|
|
|
vec_b = mathutils.Vector((0.0, 1.0, 2.0))
|
2010-01-31 21:52:26 +00:00
|
|
|
|
2011-07-26 07:39:00 +00:00
|
|
|
vec2d = mathutils.Vector((1.0, 2.0))
|
|
|
|
vec3d = mathutils.Vector((1.0, 0.0, 0.0))
|
2011-02-05 09:57:02 +00:00
|
|
|
vec4d = vec_a.to_4d()
|
2010-01-31 21:52:26 +00:00
|
|
|
|
|
|
|
# other mathutuls types
|
2010-04-11 14:22:27 +00:00
|
|
|
quat = mathutils.Quaternion()
|
|
|
|
matrix = mathutils.Matrix()
|
2010-01-31 21:52:26 +00:00
|
|
|
|
|
|
|
# Comparison operators can be done on Vector classes:
|
|
|
|
|
|
|
|
# greater and less then test vector length.
|
|
|
|
vec_a > vec_b
|
|
|
|
vec_a >= vec_b
|
|
|
|
vec_a < vec_b
|
|
|
|
vec_a <= vec_b
|
|
|
|
|
|
|
|
# ==, != test vector values e.g. 1,2,3 != 3,2,1 even if they are the same length
|
|
|
|
vec_a == vec_b
|
|
|
|
vec_a != vec_b
|
|
|
|
|
|
|
|
|
|
|
|
# Math can be performed on Vector classes
|
|
|
|
vec_a + vec_b
|
|
|
|
vec_a - vec_b
|
|
|
|
vec_a * vec_b
|
|
|
|
vec_a * 10.0
|
2011-07-26 07:39:00 +00:00
|
|
|
matrix * vec_a
|
|
|
|
quat * vec_a
|
2010-01-31 21:52:26 +00:00
|
|
|
vec_a * vec_b
|
|
|
|
-vec_a
|
|
|
|
|
|
|
|
|
|
|
|
# You can access a vector object like a sequence
|
|
|
|
x = vec_a[0]
|
|
|
|
len(vec)
|
|
|
|
vec_a[:] = vec_b
|
2011-07-26 07:39:00 +00:00
|
|
|
vec_a[:] = 1.0, 2.0, 3.0
|
2010-01-31 21:52:26 +00:00
|
|
|
vec2d[:] = vec3d[:2]
|
|
|
|
|
|
|
|
|
|
|
|
# Vectors support 'swizzle' operations
|
|
|
|
# See http://en.wikipedia.org/wiki/Swizzling_(computer_graphics)
|
|
|
|
vec.xyz = vec.zyx
|
2010-01-31 22:50:07 +00:00
|
|
|
vec.xy = vec4d.zw
|
|
|
|
vec.xyz = vec4d.wzz
|
|
|
|
vec4d.wxyz = vec.yxyx
|