问题描述
OpenMesh具有其VectorT class,我相信它可以用于执行各种位置矢量运算(加法/减法,内部和外部乘积等)。是否有实际使用方法的示例?我会特别感兴趣
- 如何定义和初始化3D坐标矢量
- 如何将顶点位置(点类型)正确转换为VectorT类型,或者如何立即获取顶点位置作为VectorT类型。到目前为止,我正在使用
mesh.point(vhandle)
,但是它返回的是Point()
类型。
编辑:显然Point
本身就是VectorT
的一种,因为VectorT
成员函数也可以在Point
对象上工作。>
解决方法
使用OpenMesh本机点类型进行数学运算的示例:
-
OpenMesh::Vec3f myVec = OpenMesh::Vec3f(0,0);
-
float distance = (point1 - point2).norm();
也可用:l1_norm()
,l8_norm()
,sqrnorm()
-
Point interpolated_point = (1 - a) * point1 + a * point2;
-
Vec3f crossProduct = vec1 % vec2;
仅为Vec3
(以及您提到的Point
)定义 -
Vec3f dotProduct = vec1 | vec2;