OpenMesh 几何向量运算
OpenMesh geometric vector operations
OpenMesh 有它的 VectorT class,我相信它用于执行各种位置向量操作(additions/subtractions、内积和外积等)。有没有关于如何实际使用它的例子?我会对
特别感兴趣
- 如何定义和初始化 3D 坐标向量
- 如何正确地将顶点位置(Point 类型)转换为 VectorT 类型,或者,如何立即将顶点位置作为 VectorT 类型。到目前为止,我使用的是
mesh.point(vhandle)
,但是 returns 是 Point()
类型。
编辑: 显然 Point
是某种 VectorT
本身,因为 VectorT
成员函数作用于 Point
对象还有。
使用OpenMesh原生点类型的数学运算示例:
OpenMesh::Vec3f myVec = OpenMesh::Vec3f(0, 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;
OpenMesh 有它的 VectorT class,我相信它用于执行各种位置向量操作(additions/subtractions、内积和外积等)。有没有关于如何实际使用它的例子?我会对
特别感兴趣- 如何定义和初始化 3D 坐标向量
- 如何正确地将顶点位置(Point 类型)转换为 VectorT 类型,或者,如何立即将顶点位置作为 VectorT 类型。到目前为止,我使用的是
mesh.point(vhandle)
,但是 returns 是Point()
类型。
编辑: 显然 Point
是某种 VectorT
本身,因为 VectorT
成员函数作用于 Point
对象还有。
使用OpenMesh原生点类型的数学运算示例:
OpenMesh::Vec3f myVec = OpenMesh::Vec3f(0, 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;