直线的方程与性质

本文介绍计算几何中常用的直线方程和直线性质。下面用圆括号(x,y)表示点的坐标,用方括号[x,y]表示方向矢量。

一、平面直线

1. 两点式

过两点(x_a,y_a)(x_b,y_b)的直线方程是:
x(y_a-y_b) + y(x_b-x_a) + x_ay_b - x_by_a = 0

2.点向式

过点(x_0,y_0)且平行于[l_x,l_y]的直线方程是:
l_yx - l_xy + l_xy_0 - l_yx_0 = 0

3.点法式

过点(x_0,y_0)且垂直于[n_x,n_y]的直线方程可由[ l_x,l_y]=[-n_y,n_x]得到:
n_xx + n_yy - n_xx_0 - n_yy_0 = 0

4.角距式

设法向的方向角为θ,原点到直线的距离为ρ。由点法式可推出直线方程为:
x\cos θ + y\sin θ = ρ

5.一般式

上述直线方程都可以写成一般式:
Ax+By+C=0

6.参数方程

过点(x_0,y_0),倾角α为直线方程为:
\begin{cases} x=x_0 + \cosα\ t \\ y=y_0 + \sinα\ t \end{cases}

二、直线性质

1.点到直线的距离

(x_0,y_0)到直线的距离为:
d = \frac {|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}

两条平行线Ax+By+C_1=0Ax+By+C_2=0的距离为:
d = \frac {|C_1-C_2|}{\sqrt{A^2+B^2}}

所以Ax+By+C=0可以看作是过原点的直线Ax+By=0平移了d = \frac {|C|}{\sqrt{A^2+B^2}},并且垂直于点(A,B)和原点之间的连线。

2.归一化

a=\frac{A}{\sqrt{A^2+B^2}}, b=\frac {B}{\sqrt{A^2+B^2}}, c=\frac {C}{\sqrt{A^2+B^2}},可得归一化的一般式方程:
ax+by+c=0
(x_0,y_0)到直线的距离为:
d = |ax_0+by_0+c|

3.两条直线的夹角

两条直线 A_1x+B_1y+C_1=0A_2x+B_2y+C_2=0的倾角分别为α和β,夹角θ=α-β的计算方法如下:
tan(α-β) = \frac{tanα - tanβ}{1 + tanα\cdot tanβ} = \frac{A_2B_1-A_1B_2}{A_1A_2+B_1B_2}=\frac{|\vec{l_1}|\cdot|\vec{l_2}|sinθ}{|\vec{l_1}|\cdot|\vec{l_2}|cosθ}=tanθ

4.直线的交点

4.1 两条直线的交点

将两个直线方程联立,得到一个方程组:

\begin{cases} A_1x+B_1y+C_1=0\\ A_2x+B_2y+C_2=0 \end{cases}

可以解出交点坐标为:x=\frac{B_1C_2-B_2C_1}{A_1B_2-A_2B_1}, y=\frac{A_2C_1-A_1C_2}{A_1B_2-A_2B_1}.
A_1B_2-A_2B_1=0时,两条直线平行,或者说交点在无穷远处。

4.2 多条直线的交点

当多条直线不严格地交于一点时,找一个点使得点到这些直线的距离平方和最小。

设直线方程为a_ix+b_iy=c_i,并且a_i^2+b_i^2=1。点(x,y)到直线的距离为|a_ix+b_iy-c_i|,最小化\sum{(a_ix+b_iy-c_i)^2}正好是方程组a_ix+b_iy=c_i的最小二乘解,由A^TAx=A^Tb可得:

\begin{bmatrix} \sum{a_i^2} & \sum{a_ib_i}\\ \sum{a_ib_i} & \sum{b_i^2}\\ \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} \sum{a_ic_i} \\ \sum{b_ic_i} \end{bmatrix}

若直线方程为a_ix+b_iy+c_i=0,上述方程组则相当于求直线\sum{a_i^2}x+\sum{a_ib_i}y+\sum{a_ic_i}=0\sum{a_ib_i}x+\sum{b_i^2}y+\sum{b_ic_i}=0的交点。

5.点到直线的垂足

联立直线ax+by+c=0和过点(m,n)的垂线:
\begin{cases} ax+by+c=0 \\ bx-ay-bm+an=0 \end{cases}
可得垂足坐标为:(\frac{b^2m-abn-ac}{a^2+b^2}, \frac{a^2n-abm-bc}{a^2+b^2})

6. 点关于直线的对称点

点(m,n)到关于直线ax+by+c=0的对称点的有向距离为d =\frac{2(am+bn+c)}{\sqrt{a^2+b^2}},连线的单位方向为[ \frac{a}{\sqrt{a^2+b^2}}, \frac{b}{\sqrt{a^2+b^2}}].
对称点坐标为(m-\frac{2a(am+bn+c)}{a^2+b^2}, n-\frac{2b(am+bn+c)}{a^2+b^2}).

7.拟合直线

给定n个点,拟合一条直线使得这些点到该直线的距离平方和最小。

7.1 直接线性变换法

假设直线的系数为(a,b,c),将点的坐标代入可以得到一组线性方程:
\begin{gathered} ax_1 + by_1 + c = 0 \\ ax_2 + by_2 + c = 0 \\ ... \\ ax_n + by_n + c = 0 \end{gathered}
写成矩阵形式为:
\begin{bmatrix} x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ | & | & | & \\ x_n & y_n & 1 \\ \end{bmatrix} \begin{bmatrix} a \\ b \\ c \end{bmatrix}=Av=0

当点的个数≤3时,可以求矩阵A的零向量得到拟合的直线;
当点的个数>3时,可以求A^TA的最小本征值对应的本征向量作为拟合的结果。

直接线性变换法的本质是在3维空间拟合一个过原点的平面ax+by+cz=0,使得样本点(xᵢ,yᵢ,1)投影到该平面法线方向上的长度平方和∑(axᵢ+byᵢ+c)²最小,拟合的直线为该平面与z=1平面的交线,所以并不能最小化点到直线的距离平方和。

7.2 最小二乘法,最小化点到直线的竖直距离

设 y=ax+b,最小化 S(a,b)=∑(axᵢ+b-yᵢ)²。
写成矩阵形式为:
\begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ | & | & \\ x_n & 1 \\ \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix}=\begin{bmatrix} y_1 \\ y_2 \\ | \\ y_n \end{bmatrix}

记为 Av=u.

用最小二乘法可得v=(A^TA)^{-1}A^Tu.

还有一种推导是用偏微分求极值:
\begin{aligned} &\frac{\partial}{\partial b}S=2∑(axᵢ+b-yᵢ)=0 \implies b=\frac{1}{n}(∑yᵢ-a∑xᵢ)\\ &\implies b=\overline{y}-a\overline{x} \\ &\frac{\partial}{\partial a}S=2∑(axᵢ+b-yᵢ)xᵢ=0 \implies ∑(axᵢ+\overline{y}-a\overline{x}-yᵢ) = 0 \\ &\implies a=\frac{∑(yᵢ-\overline{y})xᵢ}{∑(xᵢ-\overline{x})xᵢ} \\ &=\frac{∑(xᵢyᵢ-n\overline{x}\overline{y})}{(∑xᵢ^2)-n\overline{x}^2}=\frac{(∑xᵢyᵢ)-2n\overline{x}\overline{y}+n\overline{x}\overline{y}}{(∑xᵢ^2)-2n\overline{x}\overline{x}+n\overline{x}^2}\\ &=\frac{∑xᵢyᵢ-∑xᵢ\overline{y}-∑\overline{x}yᵢ+∑\overline{x}\overline{y}}{∑xᵢ^2-2∑xᵢ\overline{x}+∑\overline{x}^2}\\ &\implies a=\frac{∑(xᵢ-\overline{x})(yᵢ-\overline{y})}{∑(xᵢ-\overline{x})^2} \end{aligned}

最小二乘法最小化 y 坐标到直线的竖直距离的平方和,且不适用于 x=c 的直线。

7.3 主成分分析法,最小化点到直线的垂直距离

先计算n个点的中心点的坐标(x₀,y₀),即x坐标和y坐标的平均值。
各个点到中心点的差值组成一个矩阵:
A=\begin{bmatrix} x_1-x_0 & y_1-y_0 \\ x_2-x_0 & y_2-y_0 \\ | & | & \\ x_n-x_0 & y_n-y_0 \\ \end{bmatrix}
计算 S=\dfrac{A^TA}{n-1}
求S的本征值和本征向量,最大的本征值对应的本征向量就是拟合直线的方向,即“主成分”。另一个本征向量的方向垂直于直线方向,使得点到直线的垂直距离和最小,同时这个较小的本征值就等于点到直线的距离的方差。

根据拟合直线的方向和中心点坐标,可求出直线的方程系数。

8. 线性组合

两条直线 a_1x+b_1y+c_1=0a_2x+b_2y+c_2=0的线性组合:
(λa_1+(1-λ)a_2)x + (λb_1+(1-λ)b_2)y +(λc_1+(1-λ)c_2) = 0
是通过这两条直线的交点的一簇直线。

两个点 (x_1,y_1),(x_2,y_2) 的线性组合(λx_1+(1-λ)x_2, λy_1+(1-λ)y_2)是过这两点的直线上的点。

三、空间直线

1. 两点式

经过点a和b的直线为:x=a+λ(b-a)

2. 两向式

直线方向为m,过原点和直线的平面法向为n,直线方程为:x \times m = n

3. 点向式

过点a,方向为n的直线为:x=a+λn

4. 点到直线的距离

点b到直线x=a+λn距离是b-a与n组成平行四边形,以n为底求高:
d = \frac{|(b-a) \times n|}{|n|}

5. 两条直线的距离

两条异面直线 x=a+λpx=b+µq 最短距离是三个向量组成的平行六面体的高:
d = \frac{1}{|p \times q|} \det\begin{bmatrix} b-a \\ p \\ q \end{bmatrix}
距离最近处的连线同时垂直与这两条直线,所以
\begin{gathered} (a+λp - b-µq) \cdot p= 0\\ (a+λp - b-µq) \cdot q= 0 \end{gathered} \implies \begin{gathered} λp \cdot p - µq \cdot p = (b-a) \cdot p\\ λp \cdot q - µq \cdot q= (b-a) \cdot q \end{gathered}
这个方程组等价于将 λp - µq = b - a 写成矩阵形式后求最小二乘解。
t = b -a, 解出 λ 和 µ:

\begin{cases} λ = \cfrac{(p \cdot q)(t \cdot q) - (q \cdot q)(t \cdot p)}{(p \cdot q)^2 - (p \cdot p )(q \cdot q)} \\\\ µ = \cfrac{(p \cdot p)(t \cdot q) - (p \cdot q)(t \cdot p)}{(p \cdot q)^2 - (p \cdot p )(q \cdot q)} \end{cases}

可以得到两条直线上距离最近的两个点a+λpb+µq,这两个点的中点可视作两条直线的交点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容