投影问题
XantC
向量到平面投影
对于一向量a,其到以n为法向量的平面的投影,为:
Prj = a − (a ⋅ n)n
线性投影
这类问题是把“一个向量”投影到“一个矩阵的列空间”上的,可以看作是上一部分的推广。而此时原向量和投影向量的差,是垂直与矩阵的列空间,也就是在它的左零空间里的。如果我们设一个n = r的矩阵为A,投影向量满足p = Ax̄,则有AT(b − Ax̄) = 0
所以:
ATAx̄ = ATb
由于ATA可逆,我们就可以直接求解这个矩阵方程,然后得到{x}$。
如果想要再进一步得到对于C(A)的投影矩阵(也就是直接作用于目标向量b的矩阵),我们可以:
x̄ = (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则负责这些曲线之间的平移。