osg.Vec3f是OpenSceneGraph库中表示三维向量的类。它包括三个浮点数表示向量在三个维度上的大小。
osg.Vec3f()
:默认构造函数,创建一个(0,0,0)的向量。osg.Vec3f(x, y, z)
:指定xyz值构造函数,创建一个(x,y,z)的向量。osg.Vec3f(v)
:拷贝构造函数,创建一个与v向量相同的新向量。set(x, y, z)
: 设置向量的xyz值。set(v)
: 设置向量为v。zero()
: 将向量设置为(0,0,0)。length()
: 返回向量的长度。length2()
: 返回向量长度的平方。normalize()
: 归一化向量。operator[](i)
: 返回向量第i维的值,i取值为0、1、2。operator+(v)
: 重载加号操作符,返回当前向量加上v的结果。operator-(v)
: 重载减号操作符,返回当前向量减去v的结果。operator*(a)
: 重载乘号操作符,返回当前向量乘以a的结果。operator/(a)
: 重载除号操作符,返回当前向量除以a的结果。operator+=(v)
: 重载加等于操作符,将当前向量加上v。operator-=(v)
: 重载减等于操作符,将当前向量减去v。operator*=(a)
: 重载乘等于操作符,将当前向量乘以a。operator/=(a)
: 重载除等于操作符,将当前向量除以a。operator==(v)
: 判断当前向量是否与v相等。operator!=(v)
: 判断当前向量是否与v不相等。dot(v1, v2)
: 返回v1和v2的点乘积。cross(v1, v2)
: 返回v1和v2的叉乘积。lerp(from, to, t)
: 从from向to做slerp,t为slerp的位置参数。import osg
# 创建一个(1,2,3)的向量
v = osg.Vec3f(1, 2, 3)
# 输出向量长度
print(v.length()) # 输出 3.7416575
# 归一化向量
v.normalize()
# 输出归一化后向量的xyz值
print(v.x(), v.y(), v.z()) # 输出 0.2672612 0.5345225 0.8017837
# 将向量加上(1,1,1)
v += osg.Vec3f(1, 1, 1)
# 输出相加后向量的xyz值
print(v.x(), v.y(), v.z()) # 输出 1.2672612 1.5345225 1.8017837
# 计算当前向量与(2,3,4)的点乘积
print(osg.Vec3f.dot(v, osg.Vec3f(2, 3, 4))) # 输出 9.198064