3D空间中的平面对称点

我们的问题:给定空间中不共线的三个点,其中两个点PQ用来确定一个平面,使这两个点关于平面镜面对称,求另个一个点R关于这个平面的镜面对称点。

方法很简单:

1)平面的确定:

平面方程是:

A*n = d,           (1)

其中A是平面上一个点,而n是平面的法向,d是参数。我们在有两个点PQ,于是A=(P+Q)/2,n=Normalize(P-Q),其中Normalize是对向量进行归一化。将An代入(1),可以得到d。

 

2)求R关于平面的镜面对称点T

求得R到平面的距离:Dis=abs(R*n-d),因为n已经归一化,所以省略了分母部分。

根据R*n-d的符号来判断R是和P同侧还是和Q同侧:

if(R*n-d > 0)
    R and P are on the same side
    T = R - 2*Dis*n
else
    R and Q are on the same side
    T = R + 2*Dis*n

目标点找到。

posted on 2012-08-13 15:44  fire_fuxm_USTC  阅读(1433)  评论(0编辑  收藏  举报