Halcon学习之仿射变换3D1

1.产生一个3D的单位阵

    //产生一个3D的单位阵(4*4的仿射变换矩阵,真实存储在内存中的时候,最后一行不进行存储,因为最后一行都是相同的数据)
    HHomMat3D hhommat3d;
    hhommat3d.HomMat3dIdentity();
    HTuple tuple=hhommat3d.ConvertToTuple();//转换为tuple类型,以便读取内容数据

    for (int i = 0; i < tuple.Length();i++)
    {
        cout << (double)tuple[i] << " ";
        if ((i+1) % 4 == 0)
            cout << endl;
    }
    cout << endl;

2.添加旋转因子到一个3d仿射变换矩阵中

    //添加旋转因子到一个3d仿射变换矩阵中
    //参数说明:参数1:旋转角度(弧度),参数2:指定相对的旋转轴(‘x’,'y','z'),参数3:旋转固定点的x坐标,参数4:旋转固定点的y坐标,参数5:旋转固定点的z坐标
    HHomMat3D rotate = hhommat3d.HomMat3dRotate(3.14,"z",0,0,0);
    tuple = rotate.ConvertToTuple();

    for (int i = 0; i < tuple.Length(); i++)
    {
        cout << (double)tuple[i] << " ";
        if ((i + 1) % 4 == 0)
            cout << endl;
    }
    cout << endl;

3.反转一个3d仿射变换矩阵

    //反转一个3d仿射变换矩阵
    HHomMat3D invert = hhommat3d.HomMat3dInvert();
    tuple = invert.ConvertToTuple();

    for (int i = 0; i < tuple.Length(); i++)
    {
        cout << (double)tuple[i] << " ";
        if ((i + 1) % 4 == 0)
            cout << endl;
    }
    cout << endl;

你可能感兴趣的:(3D,仿射变换,halcon)