opencascade绘制自定义坐标系
gp_Pnt oPnt(0, 0, 0);//原点
gp_Pnt xPnt(1, 1, 1);
gp_Vec vX(oPnt, xPnt);
gp_Dir aixX(vX / vX.Magnitude());//x方向
gp_Vec constructV= vX.Rotated(gp_Ax1(oPnt,gp_Dir(0,0,1)),1.571); //对X轴进行旋转构造一个向量叉乘计算Z轴
gp_Vec vZ = vX.Crossed(constructV);
gp_Dir aixZ = (vZ / vZ.Magnitude());//z方向
gp_Ax2 ax = gp_Ax2(oPnt, aixZ, aixX);
Handle(Geom_Axis2Placement) TrihedronAxis = new Geom_Axis2Placement(ax);
Handle(AIS_Trihedron) partTrihedron = new AIS_Trihedron(TrihedronAxis);
m_context->Display(partTrihedron, Standard_True);
绘制结果如图:小坐标为视图坐标系,进行参考