c++ 用 eigen与opencv计算两个向量的夹角

                      计算两个向量的夹角

eigen:

#include "Eigen/Dense"
#include "Eigen/Geometry"
using namespace Eigen;
//计算两个向量的夹角 ,传入的参数 a b 需要归一化     //a,b,c为求解出的拟合平面的法向量,是进行归一化处理之后的向量。
towVectorBetweenThetaWithVec3d(Vector3d a,Vector3d b){
    //求解两个向量的点乘  a,b需要归一化
    double v1v2 = a.dot(b);
    //计算平面法向量和参考向量的模长,因为两个向量都是归一化之后的,所以这里的结果都是1.
    double v1_norm = a[0]*a[0] + a[1]*a[1] + a[2]*a[2];
    double v2_norm = b[0]*b[0] + b[1]*b[1] + b[2]*b[2];
    //计算两个向量的夹角 acos 反余弦函数
    double theta  = std::acos(v1v2/(std::sqrt(v1_norm)*std::sqrt(v2_norm)));
    return theta;
}



int main(int argc, char **argv) {

          Vector3d vcon;
            vcon[0] = 0.0;
            vcon[1] = 0.0;
            vcon[2] = 0.0;


          Vector3d vpoint0;
            vpoint0[0] = 1.1;
            vpoint0[1] = 1.2;
            vpoint0[2] = 1.3;

            V

你可能感兴趣的:(新ros专栏,算法,计算两个向量的夹角,向量的夹角,eigen,opencv)