三维空间内的坐标转换

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:30:34
题设:

三维空间任意3点(A,B,C).组成一个平面.另有1点(D)过此平面中心垂轴.

问题:

怎么样通过旋转此三角面,让这3点(A,B,C)的z坐标都为0,D点的z值要大于0.并且要得出,这个旋转X,Y,Z值.

请各位达人帮我想想招,最好能给出个计算过程.

A,B,C 的 Z 点坐标都为零,就是说要把X-Y plane 移到 ABC这个平面上

如知道ABC的三维坐标,通过向量AB X(cross product)AC 可求出 normal vector N (向量N是垂直于平面ABC的)

Z轴是垂直X-Y plane的 Z轴的 unit vector 为<0,0,1> 旋转的方法就是把 Z的unit vector 转到与 ABC 的normal vector N 平行, 然后 假设之前求出来的 normal vector N =<a,b,c> D在原坐标系中的坐标为(x1,y2,z3)

则,ABC在原坐标系的 平面方程可表示为 ax+by+cz+d=0 D点与平面ABC的距离为Ⅰax1+by1+cz1+dⅠ/(x1^2+y1^2+z1^2)^(1/2) 则得出的值即为 D点在新坐标系中 对应 新Z 轴的坐标。

以上仅为思路,呵呵,忘多多交流。