投影问题

XantC

向量到平面投影

对于一向量a,其到以n为法向量的平面的投影,为:

Prj = a − (a ⋅ n)n

线性投影

这类问题是把“一个向量”投影到“一个矩阵的列空间”上的,可以看作是上一部分的推广。而此时原向量和投影向量的差,是垂直与矩阵的列空间,也就是在它的左零空间里的。如果我们设一个n = r的矩阵为A,投影向量满足p = A,则有AT(b − A) = 0

所以:

ATA = ATb

由于ATA可逆,我们就可以直接求解这个矩阵方程,然后得到{x}$。

如果想要再进一步得到对于C(A)的投影矩阵(也就是直接作用于目标向量b的矩阵),我们可以:

 = (ATA)−1ATb

p = Pb = A(ATA)−1ATb

∴ P = A(ATA)−1AT

曲线到平面投影

在研究曲线到平面投影的时候,我们可能担心不同位置的平面是否会导致投影曲线的不同(特别是平面插在曲线里上下移动的时候),但其实这与位置无关。我目前还不会用说理的办法来解释,于是使用代数。

如果我们使用向量值函数来表示曲线,即r(t) = (x(t), y(t), z(t))(此处不能把曲线的不变量作为参数,比如弧长,它在做投影之后肯定会变),那么原曲线切向量的投影必定和投影曲线的切向量同向(单位切向量相等)。

我们设原曲线为r0(t) = (x(t), y(t), z(t)),投影曲线为r1(t),则有:

$$ \begin{align*} \boldsymbol{r_1}^{'}&=k*Prj(\boldsymbol{r_0}^{'})\\ &=k\,(\boldsymbol{r_0}^{'}-(\boldsymbol{r_0}^{'}\cdot\boldsymbol{n})\boldsymbol{n})\\ &=k(\boldsymbol{r_0}^{'}-(\boldsymbol{r_0}\cdot \boldsymbol{n})^{'}\boldsymbol{n}) \end{align*} $$

 ⇒ r1 = k(r0 − (r0 ⋅ n + c0)n) + e0

$$ \begin{align*} 0&=(\boldsymbol{r_1}-\boldsymbol{r_0})\times\boldsymbol{n}\\ &=((k-1)\boldsymbol{r_0}-k(\boldsymbol{r_0}\cdot\boldsymbol{n}+c_0)\boldsymbol{n}+\boldsymbol{e_0})\times\boldsymbol{n}\\ &=((k-1)\boldsymbol{r_0}+\boldsymbol{e_0})\times\boldsymbol{n}\\ \end{align*} $$

(k − 1)r0 + e0 = μn

$$ \begin{align*} \Rightarrow \boldsymbol{r_1}&=((k-1)\boldsymbol{r_0}+\boldsymbol{e_0})+(\boldsymbol{r_0}-k(\boldsymbol{r_0}\cdot \boldsymbol{n})\boldsymbol{n})\\ &=\boldsymbol{r_0}+(\mu-k(\boldsymbol{r_0}\cdot\boldsymbol{n}+c_0))\boldsymbol{n}\\ &=\boldsymbol{r_0}+(k\boldsymbol{r_0}\cdot\boldsymbol{n}+c_0)\boldsymbol{n}\\ \end{align*}$$

 ⇒ r1 = r0 ⇒ k = 1

∴ r1 = r0 + (r0 ⋅ n + c0)n

根据最后的式子,我们可以看出投影曲线的确与平面本身的位置无关。而由于常数c0的存在,我们得到的其实是一组垂直于曲面法向量的曲线;c0则负责这些曲线之间的平移。