经过和学长的讨论,这个证明方法存在问题
投影变换是非线性变换,在旋转后变换的图形和原先变换图形不一定一样,即原先是直角梯形,旋转了45度后可能不是直角梯形了,本方法为了得到梯形无法避免非线性变换,无法保证旋转后的图形形状,无法用来证明
背景:
在连续地面上,尝试证明一个四条腿的梯形椅子可以完全贴地,已知总有三条腿可以完全贴地
方案:
1.旋转:没有对称性
2.空间几何:找两个可以贴地的正方形椅子,椅面不一定平行
3.图像变换:透视投影可以,将二维坐标扩展为三维齐次坐标,但需注意部分变换函数并不连续。
原理:
记正方形上点为 \((x,y)\) ,任意四边形上对应点为 \((x',y')\) ,变换矩阵为一3$\times$3矩阵
1.将二维点提升到齐次坐标:
\[[x,y]->[x,y,1]
\]
2.乘以变换矩阵H,得到中间齐次坐标:
\[(u,v,w)=(x,y,1)\begin{pmatrix}
h_{11} & h_{12} &h_{13} \\
h_{21} & h_{22} &h_{23} \\
h_{31} & h_{32} &h_{33} \\
\end{pmatrix}\]
3.展开上面矩阵乘法后,将三维齐次坐标化为二维,得到变换后的四边形的顶点坐标:
\[x'=\frac{u}{w}=\frac{h_{11}x+h_{21}y+h_{31}}{h_{13}x+h_{23}y+h_{33}}
\]
\[y'=\frac{v}{w}=\frac{h_{12}x+h_{22}y+h_{32}}{h_{13}x+h_{23}y+h_{33}}
\]
模型求解
空间四点共面等价于 \(\left|\begin{array}
11 & x_{1} &y_{1}&z_{1} \\
1 & x_{2} &y_{2}&z_{2} \\
1 & x_{3} &y_{3}&z_{3} \\
1 & x_{4} &y_{4}&z_{4} \\
\end{array}\right|=0\),
引入正方形判断函数
\[\Delta(\theta)=\left|\begin{array}
11 & acos(\theta) &asin(\theta)&f(acos(\theta),asin(\theta)) \\
1 & asin(\theta) &-acos(\theta)&f(asin(\theta),-acos(\theta)) \\
1 & -acos(\theta) &-asin(\theta)&f(-acos(\theta),-asin(\theta)) \\
1 & -asin(\theta) &acos(\theta)&f(-asin(\theta),acos(\theta)) \\
\end{array}\right|\]
对正方形的顶点施加投影变换,得到变换后四边形的判断函数:
\[\Omega(\theta)=\left|\begin{array}
11 &
\frac{h_{11}acos(\theta)+h_{21}asin(\theta)+h_{31}}{h_{13}acos(\theta)+h_{23}asin(\theta)+h_{33}}&
\frac{h_{12}acos(\theta)+h_{22}asin(\theta)+h_{32}}{h_{13}acos(\theta)+h_{23}asin(\theta)+h_{33}}&
f(\omega_{12},\omega_{13}) \\
1 &
\frac{h_{11}asin(\theta)-h_{21}acos(\theta)+h_{31}}
{h_{13}asin(\theta)-h_{23}acos(\theta)+h_{33}}&
\frac{h_{12}asin(\theta)-h_{22}acos(\theta)+h_{32}}
{h_{13}asin(\theta)-h_{23}acos(\theta)+h_{33}}&
f(\omega_{22},\omega_{23}) \\
1 &
\frac{-h_{11}acos(\theta)-h_{21}asin(\theta)+h_{31}}
{-h_{13}acos(\theta)-h_{23}asin(\theta)+h_{33}}&
\frac{-h_{12}acos(\theta)-h_{22}asin(\theta)+h_{32}}
{-h_{13}acos(\theta)-h_{23}asin(\theta)+h_{33}}&
f(\omega_{32},\omega_{33}) \\
1 &
\frac{-h_{11}asin(\theta)+h_{21}acos(\theta)+h_{31}}
{-h_{13}asin(\theta)+h_{23}acos(\theta)+h_{33}}&
\frac{-h_{12}asin(\theta)+h_{22}acos(\theta)+h_{32}}
{-h_{13}asin(\theta)+h_{23}acos(\theta)+h_{33}}&
f(\omega_{42},\omega_{43}) \\
\end{array}\right|\]
分别带入 \(\theta=0,\theta=\frac{\pi}{2}\) 得
\[\Omega(0)=\left|\begin{array}
11 & \frac{ah_{21}+h_{31}}{ah_{23}+h_{33}} &
\frac{ah_{22}+h_{32}}{ah_{23}+h_{33}}&
f(\omega_{12},\omega_{13}) \\
1 & \frac{ah_{11}+h_{31}}{ah_{13}+h_{33}} &
\frac{ah_{12}+h_{32}}{ah_{13}+h_{33}}&
f(\omega_{22},\omega_{23}) \\
1 & \frac{-ah_{21}+h_{31}}{-ah_{23}+h_{33}} &
\frac{-ah_{22}+h_{32}}{-ah_{23}+h_{33}} &
f(\omega_{32},\omega_{33})\\
1 & \frac{-ah_{12}+h_{32}}{-ah_{13}+h_{33}} &
\frac{-ah_{12}+h_{32}}{-ah_{13}+h_{33}} &
f(\omega_{42},\omega_{43})\\
\end{array}\right|\]
\[\Omega(\frac{\pi}{2})=\left|\begin{array}
11 & \frac{-ah_{12}+h_{32}}{-ah_{13}+h_{33}} &
\frac{-ah_{12}+h_{32}}{-ah_{13}+h_{33}} &
f(\omega_{12},\omega_{13}) \\
1 & \frac{ah_{11}+h_{31}}{ah_{13}+h_{33}} &
\frac{ah_{12}+h_{32}}{ah_{13}+h_{33}}&
f(\omega_{22},\omega_{23}) \\
1 & \frac{-ah_{21}+h_{31}}{-ah_{23}+h_{33}} &
\frac{-ah_{22}+h_{32}}{-ah_{23}+h_{33}} &
f(\omega_{32},\omega_{33})\\
1 &\frac{ah_{21}+h_{31}}{ah_{23}+h_{33}} &
\frac{ah_{22}+h_{32}}{ah_{23}+h_{33}}&
f(\omega_{42},\omega_{43})\\
\end{array}\right|\]
可以观察到$$\Omega(0)=-\Omega(\frac{\pi}{2})$$
连续函数相乘的结果任然是连续函数。
想要 \(\Omega\) 函数连续,行列式中每一项分母需不为零,有如下条件
\[\left\{
\begin{array}{**lr**}
ah_{23}+h_{33}\neq0& \\
ah_{13}+h_{33}\neq0\\
-ah_{23}+h_{33}\neq0& \\
-ah_{13}+h_{33}\neq0
\end{array}
\right.
\Rightarrow
\left\{
\begin{array}{l}
h_{13}\neq-\frac{1}{a}& \\
h_{13}\neq\frac{1}{a}\\
h_{23}\neq-\frac{1}{a} \\
h_{23}\neq\frac{1}{a}
\end{array}
\right.
\]
\[—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
\]
直角梯形的h参数
记正方形 \(a,b,c,d\) 四点,分别和直角梯形 \(a',b',c',d'\) 对应
\[\left\{
\begin{array}{**lr**}
a:(0,1) \\
b:(1,1)\\
c:(1,0) \\
d:(0,0)
\end{array}
\right.
\rightarrow
\left\{
\begin{array}{**lr**}
a':(0,h) \\
b':(a,h)\\
c':(b,0) \\
d':(0,0)
\end{array}
\right.
\]
记投影变换矩阵
\[H=\begin{pmatrix}
h_{11} & h_{12} &h_{13} \\
h_{21} & h_{22} &h_{23} \\
h_{31} & h_{32} &h_{33} \\
\end{pmatrix}\]
由透视变换,构造透视变换方程
\[\begin{pmatrix}
h_{11} & h_{12} &h_{13} \\
h_{21} & h_{22} &h_{23} \\
h_{31} & h_{32} &h_{33} \\
\end{pmatrix}\begin{pmatrix}
x \\
y \\
1 \\
\end{pmatrix}=\begin{pmatrix}
xh_{11}+yh_{12}+h_{13} \\
xh_{21}+yh_{22}+h_{23} \\
xh_{31}+yh_{32}+h_{33} \\
\end{pmatrix}=\begin{pmatrix}
kx' \\
ky' \\
k \\
\end{pmatrix}=k\begin{pmatrix}
x' \\
y' \\
1 \\
\end{pmatrix}\]
对于k这一参数,是为了描述变换矩阵的缩放能力,按照投影变换坐标的计算,其实并不影响点的二维坐标,只会改变齐次坐标。
对于A点
\[\begin{pmatrix}
0\cdot h_{11}+1\cdot h_{12}+1\cdot h_{13} \\
0\cdot h_{21}+1\cdot h_{22}+1\cdot h_{23} \\
0\cdot h_{31}+1\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{A}\begin{pmatrix}
0 \\
a \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{12}+h_{13}=ek_{A} \\
h_{22}+h_{23}=fk_{A}\\
h_{32}+h_{33}=k_{A} \\
\end{array}
\right. \]
对于B点
\[\begin{pmatrix}
1\cdot h_{11}+1\cdot h_{12}+1\cdot h_{13} \\
1\cdot h_{21}+1\cdot h_{22}+1\cdot h_{23} \\
1\cdot h_{31}+1\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{B}\begin{pmatrix}
a \\
h \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{11}+h_{12}+h_{13}=ak_{B} \\
h_{21}+h_{22}+h_{23}=hk_{B}\\
h_{31}+h_{32}+h_{33}=k_{B} \\
\end{array}
\right. \]
对于C点
\[\begin{pmatrix}
1\cdot h_{11}+0\cdot h_{12}+1\cdot h_{13} \\
1\cdot h_{21}+0\cdot h_{22}+1\cdot h_{23} \\
1\cdot h_{31}+0\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{C}\begin{pmatrix}
b \\
0 \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{11}+h_{13}=bk_{C} \\
h_{21}+h_{23}=0\\
h_{31}+h_{33}=k_{C} \\
\end{array}
\right. \]
对于D点
\[\begin{pmatrix}
0\cdot h_{11}+0\cdot h_{12}+1\cdot h_{13} \\
0\cdot h_{21}+0\cdot h_{22}+1\cdot h_{23} \\
0\cdot h_{31}+0\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{D}\begin{pmatrix}
0 \\
0 \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{13}=0 \\
h_{23}=0\\
h_{33}=k_{D} \\
\end{array}
\right. \]
汇总
\[\left\{
\begin{array}{**lr**}
h_{12}+h_{13}=0 \\
h_{22}+h_{23}=hk_{A}\\
h_{32}+h_{33}=k_{A} \\
\end{array}
\right. \left\{
\begin{array}{**lr**}
h_{11}+h_{12}+h_{13}=ak_{B} \\
h_{21}+h_{22}+h_{23}=hk_{B}\\
h_{31}+h_{32}+h_{33}=k_{B} \\
\end{array}
\right. \left\{
\begin{array}{**lr**}
h_{11}+h_{13}=bk_{C} \\
h_{21}+h_{23}=0\\
h_{31}+h_{33}=k_{C} \\
\end{array}
\right. \left\{
\begin{array}{**lr**}
h_{13}=0 \\
h_{23}=0\\
h_{33}=k_{D} \\
\end{array}
\right. \]
可以得到
\[\begin{array}{l}
h_{11}=ak_{B}=bk_{C}& h_{12}=0 & h_{13}=0 \\
h_{21}=hk_{B}& h_{22}=hk_{A} & h_{23}=0\\
h_{31}=k_{C}-k_{D}&h_{32}=k_{A}-k_{D} & h_{33}=k_{D} \\
\end{array} \]
满足上文函数连续的定义, \(\frac{1}{a}\neq0\)
再来看看这四个点的方程,d与d'点构造的方程得到 \(h_{33}\) 是一个自由变量,\(h_{13},h_{23}\)等于零,使得判断方程连续。进一步来说,变换后,只要有一点位于原点,变换后的矩阵均满足:
\[\left\{
\begin{array}{**lr**}
h_{13}=0 \\
h_{23}=0\\
h_{33}=k_{D} \\
\end{array}
\right. \]
进一步推导
\[\left\{
\begin{array}{**lr**}
a:(0,1) \\
b:(1,1) \\
c:(1,0) \\
d:(0,0)
\end{array}
\right.
\rightarrow
\left\{
\begin{array}{**lr**}
a':(e,f) \\
b':(g,h)\\
c':(i,j) \\
d':(0,0)
\end{array}
\right.
\]
对于A点
\[\begin{pmatrix}
0\cdot h_{11}+1\cdot h_{12}+1\cdot h_{13} \\
0\cdot h_{21}+1\cdot h_{22}+1\cdot h_{23} \\
0\cdot h_{31}+1\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{A}\begin{pmatrix}
e \\
f \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{12}+h_{13}=ek_{A} \\
h_{22}+h_{23}=fk_{A}\\
h_{32}+h_{33}=k_{A} \\
\end{array}
\right. \]
对于B点
\[\begin{pmatrix}
1\cdot h_{11}+1\cdot h_{12}+1\cdot h_{13} \\
1\cdot h_{21}+1\cdot h_{22}+1\cdot h_{23} \\
1\cdot h_{31}+1\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{B}\begin{pmatrix}
g \\
h \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{11}+h_{12}+h_{13}=gk_{B} \\
h_{21}+h_{22}+h_{23}=hk_{B}\\
h_{31}+h_{32}+h_{33}=k_{B} \\
\end{array}
\right. \]
对于C点
\[\begin{pmatrix}
1\cdot h_{11}+0\cdot h_{12}+1\cdot h_{13} \\
1\cdot h_{21}+0\cdot h_{22}+1\cdot h_{23} \\
1\cdot h_{31}+0\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{C}\begin{pmatrix}
i \\
j \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{11}+h_{13}=ik_{C} \\
h_{21}+h_{23}=jk_{C}\\
h_{31}+h_{33}=k_{C} \\
\end{array}
\right. \]
对于D点
\[\begin{pmatrix}
0\cdot h_{11}+0\cdot h_{12}+1\cdot h_{13} \\
0\cdot h_{21}+0\cdot h_{22}+1\cdot h_{23} \\
0\cdot h_{31}+0\cdot h_{32}+1\cdot h_{33} \\
\end{pmatrix}=k_{D}\begin{pmatrix}
0 \\
0 \\
1 \\
\end{pmatrix}\]
易知
\[\left\{
\begin{array}{**lr**}
h_{13}=0 \\
h_{23}=0\\
h_{33}=k_{D} \\
\end{array}
\right. \]
汇总
\[\left\{
\begin{array}{**lr**}
h_{12}+h_{13}=ek_{A} \\
h_{22}+h_{23}=fk_{A}\\
h_{32}+h_{33}=k_{A} \\
\end{array}
\right.\left\{
\begin{array}{**lr**}
h_{11}+h_{12}+h_{13}=gk_{B} \\
h_{21}+h_{22}+h_{23}=hk_{B}\\
h_{31}+h_{32}+h_{33}=k_{B} \\
\end{array}
\right. \left\{
\begin{array}{**lr**}
h_{11}+h_{13}=ik_{C} \\
h_{21}+h_{23}=jk_{C}\\
h_{31}+h_{33}=k_{C} \\
\end{array}
\right. \]
可以得到
\[\begin{array}{l}
h_{11}=gk_{B}-ek_{A}& h_{12}=ek_{A} & h_{13}=0 \\
h_{21}=jk_{C} & h_{22}=fk_{A} & h_{23}=0\\
h_{31}=k_{C}-k_{D}=k_{B}-k_{A} &h_{32}=k_{A}-k_{D} & h_{33}=k_{D} \\
\end{array} \]
同样符合先前提到的条件