码迷,mamicode.com
首页 > 其他好文 > 详细

OpenMesh 之向量操作

时间:2015-04-08 14:57:06      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

OpenMesh 提供了许多可供使用的向量操作函数,使用特别方便。

 

计算距离:

从官方文档可以看到OpenMesh提供了5个函数,分别为

Scalar length() const        //compute euclidean norm 

Scalar norm() const         //compute euclidean norm 

Scalar sqrnorm() const    //compute squared euclidean norm 

Scalar l1_norm() const    //compute L1 (Manhattan) norm 

Scalar l8_norm() const   //compute l8_norm 

test:

    MyMesh::Normal p(1,-1,2), q(0,1,3);
    cout<<"length  :  "<<(p-q).length()<<endl;
    cout<<"norm    :  "<<(p-q).norm()<<endl;
    cout<<"sqrnorm :  "<<(p-q).sqrnorm()<<endl;
    cout<<"l1_norm :  "<<(p-q).l1_norm()<<endl;
    cout<<"l8_norm :  "<<(p-q).l8_norm()<<endl;

result:

技术分享

 

对于二维空间上的点(也可看做向量,起点为原点) p(x1,y1), q(x2,y2)

欧几里得距离                norm =( (x2-x1)+ (y2-y1)2

曼哈顿距离(L1距离)      l1_norm = |x2-x1| + |y2-y1|

切比雪夫距离(L距离)    l8_norm = max{|x2-x1| , |y2-y1|}

 

max & min

test:

 1     MyMesh::Normal p(1,-3,2), q(0,2,4);
 2     cout<<"max       :  "<<p.max()<<endl;
 3     cout<<"max_abs   :  "<<p.max_abs()<<endl;
 4 
 5     cout<<"maximize  :  "<<p.maximize(q)<<endl;
 6     cout<<p<<endl<<q<<endl;
 7     cout<<"maximized :  "<<p.maximized(q)<<endl;
 8     cout<<p<<endl<<q<<endl;
 9     cout<<"maximized :  "<<q.maximized(p)<<endl;
10     cout<<p<<endl<<q<<endl;

result:

技术分享

从result来看,max 和 max_abs 很简单,不用多说。对于 p.maximize(q) 返回值是向量p与q对应位置的最大值组成的向量,而 p.maximized(q) 判断向量p是否经历了maximize,返回值为0则向量p不变,未经过maximize, 返回值为1则向量p改变,即经过maximize。

对于min,有同样的操作,不再赘述。

 

点乘叉乘(内积外积)

test:

1     MyMesh::Normal p(1,-3,2), q(0,2,4);
2     cout<<"dot product    : "<< (p | q) <<endl;
3     cout<<"cross product  : "<< (p % q) <<endl;

result:

技术分享

向量 p(x1,y1,z1), q(x2,y2,z2)

点乘(内积):x1*x2 + y1*y2 + z1*z2

叉乘(外积):(y1*z2-y2*z1, x2*z1-x1*z2, x1*y2-x2*y1)   (来自行列式表示的化简,cnblog不能打公式么???)

 

OpenMesh 之向量操作

标签:

原文地址:http://www.cnblogs.com/VVingerfly/p/4402186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!