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