一些簡(jiǎn)單的幾何關(guān)系

已知兩點(diǎn)求直線方程

有不同兩點(diǎn)P_0(x_0, y_0)P_1(x_1, y_1),通過(guò)求解以下方程
\frac{y - y_0}{x - x_0} = \frac{y - y_1}{x - x_1}

可以得到
y = \frac{(x - x_0)y_1 + (x1 - x)y_0}{x_1 - x_0}
如果在極坐標(biāo)系下,兩點(diǎn)為P_0(\alpha_0, d_0)P_1(\alpha_1, d_1),則直線方程為
\frac{d\sin\alpha - d_0\sin\alpha_0}{d\cos\alpha - d_0\cos\alpha_0} = \frac{d\sin\alpha - d_1\sin\alpha_1}{d\cos\alpha - d_1\cos\alpha_1}

可以得到
d = \frac{d_0d_1\sin(\alpha_1 - \alpha_0)}{d_0\sin(\alpha - \alpha_0) + d_1\sin(\alpha_1 - \alpha)}

過(guò)兩點(diǎn)的半徑為r的圓

有點(diǎn)P_0(x_0, y_0)P_1(x_1, y_1),現(xiàn)需要求解圓心位置O(a, b),使得半徑為r的圓通過(guò)兩點(diǎn)
可以簡(jiǎn)單列出方程為
\begin{aligned} (a - x_0)^2 + (b - y_0)^2 =& r^2 \\ (a - x_1)^2 + (b - y_1)^2 =& r^2 \end{aligned}
求解得到
\begin{aligned} a &= \frac{x_0 + x_1}{2} \pm \frac{|y_0 - y_1|}{2} \sqrt{\frac{4r^2}{(x_0 - x_1)^2 + (y_0 - y_1)^2} - 1} \\ b &= \frac{y_0 + y_1}{2} \mp \frac{x_0 - x_1}{2} \frac{|y_0 - y_1|}{y_0 - y_1} \sqrt{\frac{4r^2}{(x_0 - x_1)^2 + (y_0 - y_1)^2} - 1} \\ \end{aligned}

點(diǎn)到直線的距離

目前有點(diǎn)P_0(x_0, y_0)P_1(x_1, y_1),兩者組成線段,現(xiàn)有點(diǎn)O(a, b),求解點(diǎn)O到直線的距離
首先求解點(diǎn)P_0和點(diǎn)P_1組成的直線方程為
(y_0 - y_1)x + (x_1 - x_0)y + x_0y_1 - x_1y_0 = 0
點(diǎn)O到直線的距離為
\begin{aligned} d &= \frac{|(y_0 - y_1)a + (x_1 - x_0)b + x_0y_1 - x_1y_0|}{\sqrt{(x_1 - x_0)^2 + (y_0 - y_1)^2}} \\ &= \frac{|(x_1 - x_0)(b - y_0) - (y_1 - y_0)(a - x_0)|}{\sqrt{(x_1 - x_0)^2 + (y_0 - y_1)^2}} \end{aligned}

到直線距離為d的點(diǎn)

目前有點(diǎn)P_0(x_0, y_0)P_1(x_1, y_1),兩者組成線段,求解到直線距離為d的點(diǎn)O(a, b),使得OP_0 \bot P_0P_1
\begin{aligned} (a - x_0)(x_1 - x_0) + (b - y_0)(y_1 - y_0) =& 0 \\ (a - x_0)^2 + (b - y_0)^2 =& d^2 \end{aligned}
可以求解得到
\begin{aligned} a &= x_0 \pm\frac{(y_1 - y_0)}{\sqrt{(x_1 - x_0)^2 + (y_1 - y_0)^2}}d \\ b &= y_0 \mp\frac{(x_1 - x_0)}{\sqrt{(x_1 - x_0)^2 + (y_1 - y_0)^2}}d \end{aligned}
根據(jù)點(diǎn)O和點(diǎn)P_0到原點(diǎn)的距離可以選擇一個(gè)合適的點(diǎn)

直線段上的垂直點(diǎn)

目前有點(diǎn)P_0(x_0, y_0, z_0)P_1(x_1, y_1, z_1),兩者組成線段,現(xiàn)有點(diǎn)O(a, b, c),求解垂直點(diǎn)Q(x, y, z)位置,并且判斷是否在線段P_0P_1
考慮到垂直點(diǎn)QP_0P_1共線,因此可以表達(dá)成
\begin{aligned} x &= kx_0 + (1 - k)x_1 = x_1 - k(x_1 - x_0) \\ y &= ky_0 + (1 - k)y_1 = y_1 - k(y_1 - y_0) \\ z &= kz_0 + (1 - k)z_1 = z_1 - k(z_1 - z_0) \end{aligned}

當(dāng)k \in [0, 1],點(diǎn)Q在線段P_0P_1上,否則在線段外
現(xiàn)在找到點(diǎn)Q使得OQ \bot P_0P_1,即
(x - a)(x_1 - x_0) + (y - b)(y_1 - y_0) + (z - c)(z_1 - z_0) = 0

展開(kāi)后可以得到
k = \frac{(x_1 - x_0)(x_1 - a) + (y_1 - y_0)(y_1 - b) + (z_1 - z_0)(z_1 - c) }{(x_1 - x_0)^2 + (y_1 - y_0)^2 + (z_1 - z_0)^2}

如果尋求原點(diǎn)(0, 0, 0)到線段的垂直點(diǎn),那么公式將會(huì)變成
k = \frac{(x_1 - x_0)x_1 + (y_1 - y_0)y_1 + (z_1 - z_0)z_1 }{(x_1 - x_0)^2 + (y_1 - y_0)^2 + (z_1 - z_0)^2}

平面上的垂直點(diǎn)

假設(shè)平面上四邊形由四個(gè)點(diǎn)P_0(x_0, y_0, z_0)、P_1(x_1, y_1, z_1)、P_2(x_2, y_2, z_2)、P_3(x_3, y_3, z_3)(四個(gè)點(diǎn)按照順時(shí)針或者逆時(shí)針)組成,現(xiàn)有點(diǎn)O(a, b, c),求解垂直點(diǎn)Q(x, y, z)位置,并且判斷是否在矩形內(nèi)
考慮到垂直點(diǎn)QP_0P_1P_2P_3共面,因此可以表達(dá)成
\begin{aligned} x &= k_2[x_1 + k_1(x_0 - x_1)] + (1 - k_2)[x_2 + k_1(x_3 - x_2)] \\ y &= k_2[y_1 + k_1(y_0 - y_1)] + (1 - k_2)[y_2 + k_1(y_3 - y_2)] \\ z &= k_2[z_1 + k_1(z_0 - z_1)] + (1 - k_2)[z_2 + k_1(z_3 - z_2)] \end{aligned}

如果限制四邊形為矩形那么有
\begin{aligned} x &= k_2[x_1 + k_1(x_0 - x_1)] + (1 - k_2)[x_2 + k_1(x_0 - x_1)]\\ &= x_2 - k_1(x_1 - x_0) + k_2(x_1 - x_2) \\ y &= k_2[y_1 + k_1(y_0 - y_1)] + (1 - k_2)[y_2 + k_1(y_0 - y_1)]\\ &= y_2 - k_1(y_1 - y_0) + k_2(y_1 - y_2) \\ z &= k_2[z_1 + k_1(z_0 - z_1)] + (1 - k_2)[z_2 + k_1(z_0 - z_1)]\\ &= z_2 - k_1(z_1 - z_0) + k_2(z_1 - z_2) \end{aligned}

當(dāng)k_1,k_2 \in [0, 1],點(diǎn)Q在四邊形P_0P_1P_2P_3上,否則在四邊形外
現(xiàn)在找到點(diǎn)Q使得OQ \bot P_0P_1, OQ \bot P_1P_2,即
\begin{aligned} (x - a)(x_1 - x_0) + (y - b)(y_1 - y_0) + (z - c)(z_1 - z_0) = 0 \\ (x - a)(x_1 - x_2) + (y - b)(y_1 - y_2) + (z - c)(z_1 - z_2) = 0 \end{aligned}

展開(kāi)后可以得到
\begin{aligned} k_1 &= \frac{A_2C_1 - A_1C_2}{C_1B_2 - C_2B_1} \\ k_2 &= \frac{A_2B_1 - A_1B_2}{C_1B_2 - C_2B_1} \end{aligned}

其中
\begin{aligned} A_1 &= (x_2 - a)(x_1 - x_0) + (y_2 - b)(y_1 - y_0) + (z_2 - c)(z_1 - z_0) \\ A_2 &= (x_2 - a)(x_1 - x_2) + (y_2 - b)(y_1 - y_2) + (z_2 - c)(z_1 - z_2) \\ B_1 &= (x_1 - x_0)^2 + (y_1 - y_0)^2 + (z_1 - z_0)^2 \\ B_2 &= (x_1 - x_0)(x_1 - x_2) + (y_1 - y_0)(y_1 - y_2) + (z_1 - z_0)(z_1 - z_2) \\ C_1 &= B_2 \\ C_2 &= (x_1 - x_2)^2 + (y_1 - y_2)^2 + (z_1 - z_2)^2 \end{aligned}

二維散點(diǎn)直線擬合

目前有一系列2維散點(diǎn)(x_i,y_i), i = 1, \cdots, n,想用直線ax + by + c = 0去擬合這一系列點(diǎn),取點(diǎn)到直線的距離和最短作為約束,如下所示
\begin{aligned} \min \sum_{i=1}^n \frac{(ax_i + by_i + c)^2}{a^2 + b^2} \end{aligned}

如果約束 a^2 + b^2 = 1,則方程變?yōu)?br> \begin{aligned} \min \quad&\sum_{i=1}^n (ax_i + by_i + c)^2 \\ \text{subject to} \quad& a^2 + b^2 = 1 \end{aligned}

根據(jù)拉格朗日乘子法,相當(dāng)于求解下式
\begin{aligned} \min \quad&\sum_{i=1}^n (ax_i + by_i + c)^2 + \lambda(1 - a^2 - b^2) \end{aligned}

分別對(duì)a,b,c求解偏導(dǎo)可以得到
\begin{aligned} a\sum_{i= 1}^nx_i^2 + b\sum_{i=1}^n x_iy_i + c \sum_{i=1}^n x_i &= \lambda a \\ a\sum_{i= 1}^nx_iy_i + b\sum_{i=1}^n y_i^2 + c \sum_{i=1}^n y_i &= \lambda b \\ a\sum_{i= 1}^nx_i + b\sum_{i=1}^n y_i + nc &= 0 \end{aligned}

求解可以得到
\begin{aligned} c &= -a\frac{1}{n}\sum_{i=1}^nx_i - b\frac{1}{n}\sum_{i=1}^n y_i \\ \lambda a &= a \bigg[\sum_{i = 1}^n x_i^2 - \frac{1}{n} \big(\sum_{i = 1}^n x_i \big)^2 \bigg] + b \bigg[\sum_{i = 1}^n x_iy_i - \frac{1}{n}\sum_{i = 1}^n x_i \sum_{i = 1}^n y_i \bigg] \\ \lambda b &= a \bigg[\sum_{i = 1}^n x_iy_i - \frac{1}{n}\sum_{i = 1}^n x_i \sum_{i = 1}^n y_i \bigg] + b \bigg[\sum_{i = 1}^n y_i^2 - \frac{1}{n} \big(\sum_{i = 1}^n y_i \big)^2 \bigg] \end{aligned}

x_i' = x_i - \frac{1}{n} \sum_{i = 1}^n x_i,y_i' = y_i - \frac{1}{n} \sum_{i = 1}^n y_i,上式等價(jià)于
\begin{aligned} \begin{bmatrix} \sum_{i = 1}^n x_i'^2 & \sum_{i = 1}^n x_i'y_i' \\ \sum_{i = 1}^n x_i'y_i' & \sum_{i = 1}^n y_i'^2 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} u & w \\ w & v \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \lambda \begin{bmatrix} a \\ b \end{bmatrix} \end{aligned}

求解可以得到 \lambda = \frac{u + v \pm \sqrt{(u - v)^2 + 4w^2}}{2},取較小那個(gè)為結(jié)果得到
\begin{aligned} a^2 + b^2 =& 1 \\ \frac{a} =& \frac{-2w}{u - v+ \sqrt{(u - v)^2 + 4w^2}} \end{aligned}

k維散點(diǎn)直線擬合

有一系列k維散點(diǎn)\boldsymbol x_i=[x_{i0}, x_{i1},\cdots,x_{ik-1}]^T, i = 1, \cdots, n,希望用直線去擬合,高維空間中的直線擬合無(wú)法用類似a_0x_0 + a_1x_1 + \cdots +a_{k-1}x_{k-1} = 0來(lái)表達(dá),因?yàn)樵摲匠虨槊娣匠?,高維空間中的線,則需要多個(gè)平面求交來(lái)得到,求解較為復(fù)雜。一個(gè)可行的方式是將直線用“點(diǎn) + 向量”方式來(lái)表達(dá),即\boldsymbol x=\boldsymbol a + \eta \boldsymbol d,約束條件依然為各個(gè)點(diǎn)到直線的距離最小
\begin{aligned} \min \quad &\sum_{i=1}^n \|(\boldsymbol x - \boldsymbol a) - [\boldsymbol d^T(\boldsymbol x - \boldsymbol a)]\boldsymbol d\|^2\\ \text{subject to} \quad &\boldsymbol d^T\boldsymbol d = 1 \end{aligned}

利用拉格朗日乘子法,上式變?yōu)?br> \min \quad \sum_{i=1}^n \|(\boldsymbol x - \boldsymbol a) - [\boldsymbol d^T(\boldsymbol x - \boldsymbol a)]\boldsymbol d\|^2 +\lambda(\boldsymbol d^T\boldsymbol d - 1)

再次變形得到
\begin{aligned} &\min \quad \sum_{i=1}^n \|(\boldsymbol x - \boldsymbol a)-\boldsymbol d[\boldsymbol d^T(\boldsymbol x - \boldsymbol a)]\|^2 +\lambda(\boldsymbol d^T\boldsymbol d - 1) \\ \Rightarrow &\min \quad \sum_{i=1}^n \|(\boldsymbol I - \boldsymbol d\boldsymbol d^T)(\boldsymbol x - \boldsymbol a)\|^2 +\lambda(\boldsymbol d^T\boldsymbol d - 1) \\ \Rightarrow &\min \quad \sum_{i=1}^n (\boldsymbol x - \boldsymbol a)^T(\boldsymbol I - \boldsymbol d\boldsymbol d^T)(\boldsymbol x - \boldsymbol a) +\lambda(\boldsymbol d^T\boldsymbol d - 1) \end{aligned}

對(duì)\boldsymbol a求導(dǎo)可以得到
\sum_{i=1}^n(\boldsymbol I - \boldsymbol d\boldsymbol d^T)(\boldsymbol x - \boldsymbol a)=0

考慮到\boldsymbol I \ne \boldsymbol d \boldsymbol d^T,因此有
\boldsymbol a = \frac{1}{n} \sum_{i=1}^n \boldsymbol x

對(duì)\boldsymbol d求導(dǎo),可以得到
\begin{aligned} -\sum_{i=1}^n (\boldsymbol x - \boldsymbol a)(\boldsymbol x - \boldsymbol a)^T \boldsymbol d+\lambda\boldsymbol d \end{aligned}=0

可以得到\boldsymbol d為矩陣\sum_{i=1}^n (\boldsymbol x - \boldsymbol a)(\boldsymbol x - \boldsymbol a)^T最大特征值對(duì)應(yīng)的特征向量,該結(jié)果和二維的結(jié)果可以保持一致
注:二維結(jié)果中[a,b]^T不是直線的方向向量,而是直線的垂直向量,因此前一節(jié)中最小特征值對(duì)應(yīng)的特征向量和這里物理意義一致

k維平面擬合

有一系列 k 維散點(diǎn) \boldsymbol{x}_i = [x_{i0}, x_{i1}, \cdots, x_{ik-1}]^T, i = 1, \cdots, n,希望用平面 \boldsymbol{a}^T\boldsymbol{x} + b = 0 去擬合,其中 \boldsymbol{a} = [a_0, a_1, \cdots, a_{k-1}]^T 為平面的法向量,擬合要求所有點(diǎn)到平面的距離平方和最小,即
\min \sum_{i = 1}^n\frac{\|\boldsymbol{a}^T\boldsymbol{x}_i + b\|^2}{\|\boldsymbol{a}\|^2}

如果約束法向量 \boldsymbol{a}^T \boldsymbol{a} = 1,為單位向量,則有
\begin{aligned} \min \quad &\sum_{i = 1}^n \|\boldsymbol{a}^T\boldsymbol{x}_i + b\|^2 \\ \text{subject to} \quad &\boldsymbol{a}^T \boldsymbol{a} = 1 \end{aligned}

利用拉格朗日乘子法,上式變?yōu)?br> \min \sum_{i = 1}^n \|\boldsymbol{a}^T\boldsymbol{x}_i + b\|^2 + \lambda(\boldsymbol{a}^T \boldsymbol{a} - 1)

上式可以繼續(xù)變形得到
\min \boldsymbol{a}^T \bigg(\sum_{i=1}^n \boldsymbol{x}_i \boldsymbol{x}_i^T \bigg) \boldsymbol{a} + 2b \boldsymbol{a}^T \sum_{i=1}^n \boldsymbol{x}_i + nb^2 + \lambda(\boldsymbol{a}^T \boldsymbol{a} - 1)

上式對(duì) b 求導(dǎo)可以得到
b = - \boldsymbol{a}^T \frac{1}{n} \sum_{i = 1}^n \boldsymbol{x}_i

帶入后可以得到
\min \boldsymbol{a}^T \bigg(\sum_{i=1}^n \boldsymbol{x}_i \boldsymbol{x}_i^T - \frac{1}{n} \sum_{i=1}^n \boldsymbol{x}_i \sum_{i=1}^n \boldsymbol{x}_i^T \bigg) \boldsymbol{a} + \lambda(\boldsymbol{a}^T \boldsymbol{a} - 1)

再對(duì) \boldsymbol{a} 求導(dǎo)可以得到
\bigg(\sum_{i=1}^n \boldsymbol{x}_i \boldsymbol{x}_i^T - \frac{1}{n} \sum_{i=1}^n \boldsymbol{x}_i \sum_{i=1}^n \boldsymbol{x}_i^T \bigg) \boldsymbol{a} = -\lambda \boldsymbol{a}

為了保證原式最小,-\lambda 為矩陣 \sum_{i=1}^n \boldsymbol{x}_i \boldsymbol{x}_i^T - \frac{1}{n} \sum_{i=1}^n \boldsymbol{x}_i \sum_{i=1}^n \boldsymbol{x}_i^T 的最小特征值,歸一化法向量 \boldsymbol{a} 為對(duì)應(yīng)的特征向量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一個(gè)基于坐標(biāo)系的幾何畫(huà)圖網(wǎng)頁(yè),對(duì)于計(jì)算幾何,這個(gè)網(wǎng)頁(yè)用來(lái)畫(huà)圖、打草稿啥的挺好用。 向量 點(diǎn)積(內(nèi)積) 線性代數(shù)中的...
    阿臻同學(xué)閱讀 519評(píng)論 0 2
  • 一. INTRODUCTION 1、通常,MANAL算法涉及三個(gè)階段: (i)移動(dòng)錨節(jié)點(diǎn)遍歷監(jiān)視區(qū)域(區(qū)域),同時(shí)...
    海邊的小渣渣閱讀 1,334評(píng)論 0 1
  • 第一章 緒論 物理學(xué)是一門(mén)基礎(chǔ)學(xué)科,探索物質(zhì)的基本結(jié)構(gòu)和物質(zhì)運(yùn)動(dòng)的基本規(guī)律。是自然科學(xué)的基礎(chǔ) 物質(zhì)實(shí)物 宏觀:氣體...
    原上的小木屋閱讀 2,744評(píng)論 0 2
  • 題1 過(guò)定點(diǎn)的直線與圓相交于兩點(diǎn)(相切則重合),根據(jù)割線定理、相交弦定理與切割線定理,的乘積是定值,稱這個(gè)定值為點(diǎn)...
    備考999天閱讀 8,746評(píng)論 0 1
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,840評(píng)論 16 22

友情鏈接更多精彩內(nèi)容