RT。//点
CPoint tagpoint;//矢量=向量起始点+向量
CPoint startpoint,vec;如何球tagpoint到矢量(由startpoint和vec确定)的距离d呢?我在线等,请大家回复,我一定结贴。谢谢

解决方案 »

  1.   

    空间两点p1, p2, 求p3到两点所在直线的距离(或)投影vector v1 = p2 - p1;   // 由p1指向p2的矢量
    float  len = v1.length(); // p1到p2的距离
    vector v2 = p3 - p1;   // 由p1指向p3的矢量
    vector v3 = v1.normalize();  // 求v1的单位矢量
    float  project = v3.dot( v2 );  
    // 一个矢量与单位矢量的点积就是这个矢量在单位矢量上投影的长度
    vector p4 = p1 + v1 * ( project / len );  // p4是p3在v1上的投影点
      

  2.   

    设空间中的三点为M1,M2,M3,分别用矢量a,b表示方向向量M1M2和M1M3,则:
    1. M3到M1,M2连线的距离为|axb|/|a|,这里|.|表示向量的范数,axb表示a,b的叉乘。
      

  3.   

    vector,这个要不要加特定的头文件
      

  4.   

    点      (x1,y1,z1)
    线 :  m_a*x+m_b*y+m_c*z+m_d=0;那就是
    int nDis=abs(m_a*x1+m_b*y1+m_c*z1+m_d)/sqrt(m_a*m_a+m_b*m_b+m_c*m_c); m_a*x+m_b*y+m_c*z+m_d=0;表示三维空间中的一条直线(用方程表示).你先要用直线中2个点的六个值求出上述方程,然后应用上面给你的公式就行了!