本章结合坐标法与向量法, 利用仿射坐标系研究空间中的平面与直线.
向量 `bm v` 与平面 `pi` 平行与 `bm v` 在 `pi` 上等同, 记为 `bm v //// pi`.
取定仿射标架 `{O";" bm d_1, bm d_2, bm d_3}`, 设 `P_0(x_0, y_0, z_0)`, 向量 `bm r_1 = (x_1, y_1, z_1)` 和 `bm r_2 = (x_2, y_2, z_2)` 线性无关, 则点 `P_0` 和向量 `bm r_1, bm r_2` 唯一确定了平面 `pi`, 使得 `P_0 in pi`, `bm r_i //// pi`, `i = 1, 2`. 我们有 点 `P` 落在由 `P_0`, `bm r_1, bm r_2` 确定的平面上当且仅当 `vec(P_0 P), bm r_1, bm r_2` 线性相关. 由于 `bm r_1, bm r_2` 线性无关, 所以 `vec(P_0 P)` 可以唯一表示为 `vec(P_0 P) = u bm r_1 + v bm r_2`, `u, v in RR`. 改写得到平面的参数方程 `{ x = x_0 + x_1 u + x_2 v; y = y_0 + y_1 u + y_2 v; z = z_0 + z_1 u + z_2 v; :}` `quad` `u, v in RR`.
另一方面, 平面 `pi` 的方程也可以是 `(vec(P_0 P), bm r_1, bm r_2) = 0`, 即 `|x-x_0, y-y_0, z-z_0; x_1, y_1, z_1; x_2, y_2, z_2| = 0`. 令 `A = |y_1, z_1; y_2, z_2|`, `B = |z_1, x_1; z_2, x_2|`, `C = |x_1, y_1; x_2, y_2|`, `D = -(Ax_0 + By_0 + Cz_0)`, 上式化为平面的普通方程 `Ax + By + Cz + D = 0`. 由于 `bm r_1, bm r_2` 线性无关, `bm r_1 xx bm r_2 != bb 0`, 所以 `A, B, C` 不全为零, 平面的普通方程是三元一次方程.
仿射坐标系下, 平面的方程是三元一次方程, 反之可以验证, 由 `P_0(-D//A, 0, 0)`, `bm r_1 = (-B//A, 1, 0)`, `bm r_2 = (-C//A, 0, 1)` 确定的平面方程正好是 `Ax + By + Cz + D = 0`, 所以任意三元一次方程表示一个平面.
向量 `bm w = (x_0, y_0, z_0)` 与平面 `Ax + By + Cz + D = 0` 平行当且仅当它适合齐次方程 `Ax_0 + By_0 + Cz_0 = 0`.
`x` 轴 (`y` 轴, `z` 轴) 与平面 `pi: Ax + By + Cz + D = 0` 平行或落在平面上当且仅当 `A = 0` (`B = 0`, `C = 0`); 原点落在平面 `pi` 上当且仅当 `D = 0`.
由 Cramer 法则知道, 三平面 `A_i x + B_i y + C_i z + D_i = 0`, `i = 1, 2, 3` 恰有一个公共点当且仅当 `|A_1, B_1, C_1; A_2, B_2, C_2; A_3, B_3, C_3| != 0`.
约定 `P = (x, y, z)`, `varphi(P) = Ax + By + Cz`, `f(P) = varphi(P) + D`.
条件 | 平面 `pi` 的方程 | |
参数方程 | `P_0 in pi`, `bm r_i //// pi`, `i = 1, 2`. `bm r_1 xx bm r_2 != bb 0` | `P = P_0 + u bm r_1 + v bm r_2`, `u, v in RR` |
点向式 | `P_0(x_0, y_0, z_0) in pi`, `bm r_i = (x_i, y_i, z_i) //// pi`, `i = 1, 2`. `bm r_1 xx bm r_2 != bb 0` | `|x-x_0, y-y_0, z-z_0; x_1, y_1, z_1; x_2, y_2, z_2| = 0` |
不共线的三点 | 不共线的三点 `(x_i, y_i, z_i) in pi`, `i = 1, 2, 3` | `|x, y, z, 1; x_1, y_1, z_1, 1; x_2, y_2, z_2, 1; x_3, y_3, z_3, 1| = 0` |
三截距 | `(a,0,0)`, `(0,b,0)`, `(0,0,c) in pi`, `a, b, c != 0` | `x/a + y/b + z/c = 1` |
有轴平面束 | 两平面 `pi_i: f_i(P) = 0`, `i = 1,2` 相交于直线 `l`, `l sub pi` | ` lambda f_1 + mu f_2 = 0`, `lambda, mu` 不全为零 |
一点一平面 | `P_0 in pi`, `pi_0: f(P) = 0 //// pi` | `varphi(P - P_0) = 0` |
点法式 (正交标架) | `P_0 in pi`, `bm n = (A, B, C) _|_ pi` | `varphi(P - P_0) = 0` |
设点 `P_0` 在平面 `f(P) = 0` 上, `P_0, P_1, P_2` 三点共线, 则 `f(P_1) vec(P_0 P_2) = f(P_2) vec(P_0 P_1)`.
方程 `f(P) = 0` 可以写成 `varphi(P) + D = 0`,
其中 `varphi` 是线性函数.
由 `P_0` 在平面上得 `varphi(P_0) = -D`.
若 `P_1` 不在平面上, 有 `varphi(P_1) != varphi(P_0)`,
即 `varphi(P_1 - P_0) != 0`.
由 `P_0, P_1, P_2` 三点共线,
且 `vec(P_0 P_1) != bb 0` 知,
存在 `k in RR` 使 `vec(P_0 P_2) = k vec(P_0 P_1)`,
于是 `varphi(P_2 - P_0) = k varphi(P_1 - P_0)`.
从而
` k
= (varphi(P_2 - P_0)) / (varphi(P_1 - P_0))
= (varphi(P_2) - varphi(P_0)) / (varphi(P_1) - varphi(P_0))`
`= (varphi(P_2) + D) / (varphi(P_1) + D)
= f(P_2) / f(P_1)`.
现在设 `P_1` 在平面上, 即 `f(P_1) = 0`.
若 `P_1 = P_0`, 结论已经成立; 若 `P_1 != P_0`, 则 `P_1, P_0`
是平面上不同的两点, 连接它们的直线必定位于该平面上,
故 `f(P_2) = 0`, 结论也成立.
设平面 `pi: f(P) = 0`, 则空间中全体适合不等式 `f(P) gt 0` 的点位于平面 `pi` 的同侧; 全体适合不等式 `f(P) lt 0` 的点位于平面 `pi` 的另一侧.
设 `bm n` 是平面的一个单位法向量, `P_0` 是平面上一点, 空间一点 `P` 在平面上的射影 (即垂足) 是 `P_1`, 则 `vec(P_1 P) = (vec(P_0 P) * bm n) bm n`, 于是 `P` 到该平面的距离为 `|vec(P_1 P)| = |vec(P_0 P) * bm n|`.
由 `vec(P_1 P) //// bm n` 知, 存在唯一的 `delta in RR`, 使 `vec(P_1 P) = delta bm n`. 上式两边与 `bm n` 作内积, ` delta = delta bm n * bm n = vec(P_1 P) * bm n = cc P_(bm n)(vec(P_0 P)) * bm n = vec(P_0 P) * bm n`.
正交标架下点到平面的垂向量, 点到平面的距离及对称点 正交标架下, 设空间一点 `P(x, y, z)` 在平面 `Ax + By + Cz + D = 0` 上的射影是 `P_1`, 则 `vec(P_1 P) = (A x+B y+C z+D) bm n/|bm n|^2`, 其中 `bm n = (A, B, C)` 是平面的法向量. 于是 `P` 到该平面的距离为 ` |vec(P_1 P)| = |A x+ B y+C z+D|/sqrt(A^2+B^2+C^2)`. 又设 `Q` 是 `P` 关于该平面的对称点, 则 `vec(PQ) = -2 vec(P_1 P)`.
选取平面上一点 `P_0(x_0, y_0, z_0)`, 则 `-(A x_0+B y_0+C z_0) = D`. 由, ` vec(P_1 P) = (vec(P_0 P) * (bm n)/|bm n|) (bm n)/|bm n|` `= (A(x-x_0) + B(y-y_0) + C(z-z_0)) (bm n)/|bm n|^2` `= (A x+B y+C z+D) (bm n)/|bm n|^2`.
称满足 `vec(P_1 P) = delta (bm n)/|bm n|` 的实数 `delta = (Ax_P + By_P + Cz_P + D)/sqrt(A^2+B^2+C^2)` 为点 `P` 到平面 `Ax + By + Cz + D = 0` 的离差. 离差的绝对值等于点到平面的距离, 符号与单位法向量的选取有关.
正交标架下, 两平行平面
`pi_1: Ax + By + Cz + D_1 = 0`,
`pi_2: Ax + By + Cz + D_2 = 0`
的距离
`d = |D_1 - D_2|/sqrt(A^2 + B^2 + C^2)`.
选取点 `(x_2, y_2, z_2) in pi_2`, 则 `Ax_2 + By_2 + Cz_2 = -D_2`. 由, ` d = |Ax_2 + By_2 + Cz_2 + D_1|/sqrt(A^2+B^2+C^2) = |D_1 - D_2|/sqrt(A^2+B^2+C^2)`.
两平面的夹角是指两平面交成四个二面角中的任一个, 也指两平面的法向量之间的夹角或其补角. 由定义知道, 两平行 (或重合) 平面的夹角等于 `0` 或 `pi`.
正交标架下, 两平面
`pi_1: A_1 x + B_1 y + C_1 z + D = 0`,
`pi_2: A_2 x + B_2 y + C_2 z + D = 0`
的一个夹角 `theta` 满足
`cos theta = (bm n_1 * bm n_2)/(|bm n_1| |bm n_2|)
= (A_1 A_2 + B_1 B_2 + C_1 C_2)
/ (sqrt(A_1^2 + B_1^2 + C_1^2) sqrt(A_2^2 + B_2^2 + C_2^2))`.
`cos theta gt 0` 时 `theta` 为锐角,
`cos theta lt 0` 时 `theta` 为钝角,
`cos theta = 0` 时 `theta` 为直角.
条件 | 直线 `l` 的方程 | |
参数方程 | `P_0 in l`, `bm r_1 //// l`, `bm r_1 != bb 0` | `P = P_0 + t bm r_1`, `t in RR` |
点向式 | `P_0(x_0,y_0) in l`, `bm r_1 = (x_1,y_1) //// l`, `bm r_1 != bb 0` | `|x-x_0,y-y_0; x_1,y_1| = 0` |
两点式 | 不重合的两点 `(x_i,y_i) in l`, `i = 1,2` | `|x,y,1; x_1,y_1,1; x_2,y_2,1| = 0` |
截距式 | `(a,0)`,`(0,b) in l`, `a, b != 0` | `x/a + y/b = 1` |
点斜式 | `P_0(x_0,y_0) in l`, `l` 的斜率为 `k` | `y-y_0 = k(x-x_0)` |
斜率式 (y) | `l` 的斜率为 `k`, `(0,b) in l` | `y = k x + b` |
斜率式 (x) | `l` 的 `x`-斜率为 `m`, `(a,0) in l` | `x = m y + a` |
直线束 | 两直线 `l_i: f_i(P) = 0`, `i = 1, 2` 交于一点, `l` 过其交点 | `lambda f_1 + mu f_2 = 0`, `lambda, mu` 不全为零 |
一点一直线 | `P_0 in l`, `l_0: f(P) = 0 //// l` | `varphi(P-P_0) = 0` |
点法式 (正交标架) | `P_0 in l`, `bm n = (A,B) _|_ l` | `varphi(P-P_0) = 0` |
平面上直线 `a` 由点 `A` 和方向向量 `bm a` 确定, 直线 `b` 由点 `B` 和方向向量 `bm b` 确定. 若 `bm a, bm b` 不平行, 求两直线的交点 `P`.
在三角形 `ABP` 中使用正弦定理
`|AP| = |AB| (sin B)/(sin P)`
`= |vec(AB) xx bm b|/|bm a xx bm b| |bm a|`
用右手法则可以得到: `vec(AP)` 和 `bm a` 同向当且仅当 `vec(AB) xx bm b` 和
`bm a xx bm b` 同向.
有了 `vec(AP)` 的大小和方向, 用 `A` 的坐标加上 `vec(AP)` 就得到 `P`
的坐标.
下面回到空间直线.
取定仿射标架 `{O";" bm d_1, bm d_2, bm d_3}`, 设 `P_0(x_0, y_0, z_0)`, 非零向量 `bm r = (X, Y, Z)`, 则点 `P_0` 和向量 `bm r` 唯一确定了直线 `l`, 使得 `P_0 in l`, `bm r //// l`. 我们有 点 `P` 落在由 `P_0`, `bm r` 确定的直线上当且仅当 `vec(P_0 P), bm r` 线性相关. 由于 `bm r != bb 0`, 所以 `vec(P_0 P)` 可以唯一表示为 `vec(P_0 P) = t bm r`, `t in RR`. 改写得到直线的参数方程 `{ x = x_0 + X t; y = y_0 + Y t; z = z_0 + Z t; :}` `quad`, `t in RR`.
另一方面, 直线 `l` 的方程也可以是 `vec(P_0 P) xx bm r = bb 0`, 即 ` |x-x_0, y-y_0; X, Y| = |y-y_0, z-z_0; Y, Z|` `= |z-z_0, x-x_0; Z, X| = 0`. 约定分母为零时分子也为零, 且 `0/0` 表示任意实数, 则上式化为标准方程或点向式方程: `(x-x_0)/X = (y-y_0)/Y = (z-z_0)/Z`. 这是两个方程联立的方程组. 对任意非零实数 `k`, 称 `kX, kY, kZ` 为直线的方向系数.
条件 | 直线 `l` 的方程 | |
参数方程 | `P_0 in l`, `bm r //// l`, `bm r != bb 0` | `P = P_0 + t bm r`, `t in RR` |
标准方程 (点向式) | `(x_0, y_0, z_0) in l`, `bm r = (X, Y, Z) //// l`, `bm r != bb 0` | `(x-x_0)/X = (y-y_0)/Y = (z-z_0)/Z` |
两点式 | `P_i(x_i, y_i, z_i) in l`, `i = 1, 2`, `P_1 != P_2` | `(x-x_1)/(x_2-x_1) = (y-y_1)/(y_2-y_1) = (z-z_1)/(z_2-z_1)` |
普通方程 (两平面) | 两平面 `f_i(P) = 0`, `i = 1, 2` (系数不成比例) 相交于 `l` | `{f_1(P) = 0; f_2(P) = 0 :}` |
if `(bm r_1, bm r_2, vec(P_1 P_2)) != 0`: 两直线异面 elif `bm r_1, bm r_2` 线性无关: 两直线交于一点 elif `bm r_1, vec(P_1 P_2)` 线性无关: 两直线平行, 但不重合 else: 两直线重合
if `varphi(bm r) != 0`: 直线与平面相交 elif `f(P) != 0`: 直线与平面平行, 但不在平面上 else: 直线在平面上.
直线 `{A_1 x + B_1 y + C_1 z + D_1 = 0; A_2 x + B_2 y + C_2 z + D_2 = 0 :}` 和平面 `A_3 x + B_3 y + C_3 z + D_3 = 0` 平行或在平面上当且仅当 `|A_1, B_1, C_1; A_2, B_2, C_2; A_3, B_3, C_3| = 0`.
设 `bm r = (X, Y, Z) != bb 0` 是直线的方向向量, 则 `bm r` 与三个平面都平行, 即 `{ A_1 X + B_1 Y + C_1 Z = 0; A_2 X + B_2 Y + C_2 Z = 0; A_3 X + B_3 Y + C_3 Z = 0; :}` 由线性方程组理论, 上面的齐次方程组有非零解当且仅当其系数行列式等于 0.
两直线 `{A_1 x + B_1 y + C_1 z + D_1 = 0; A_2 x + B_2 y + C_2 z + D_2 = 0 :}` 和 `{A_3 x + B_3 y + C_3 z + D_3 = 0; A_4 x + B_4 y + C_4 z + D_4 = 0:}` 有公共点, 则 `|A_1, B_1, C_1, D_1; A_2, B_2, C_2, D_2; A_3, B_3, C_3, D_3; A_4, B_4, C_4, D_4| = 0`.
考虑关于变元 `t_1, t_2, t_3, t_4` 的齐次线性方程组 `{ A_1 t_1 + B_1 t_2 + C_1 t_3 + D_1 t_4 = 0; A_2 t_1 + B_2 t_2 + C_2 t_3 + D_2 t_4 = 0; A_3 t_1 + B_3 t_2 + C_3 t_3 + D_3 t_4 = 0; A_4 t_1 + B_4 t_2 + C_4 t_3 + D_4 t_4 = 0; :}` 设 `(x, y, z)` 是两直线的公共点, 则 `(x, y, z, 1)` 是此方程组的非零解, 由线性方程组理论, 该方程组有非零解当且仅当其系数行列式等于 0.
与异面直线 `{A_1 x + B_1 y + C_1 z + D_1 = 0; A_2 x + B_2 y + C_2 z + D_2 = 0 :}` 和 `{A_3 x + B_3 y + C_3 z + D_3 = 0; A_4 x + B_4 y + C_4 z + D_4 = 0 :}` 都相交的直线 `l` 的方程具有形式 `{ lambda (A_1 x + B_1 y + C_1 z + D_1) + mu (A_2 x + B_2 y + C_2 z + D_2) = 0; lambda' (A_3 x + B_3 y + C_3 z + D_3) + mu' (A_4 x + B_4 y + C_4 z + D_4) = 0; :}` 其中 `lambda, mu` 不全为零, `lambda', mu'` 不全为零. 即 `l` 可以表为两直线各自确定的平面束中的平面的交.
设 `bm r` 是直线的单位方向向量, `P_0` 是直线上的点. 则空间一点 `P` 到直线的距离为 `|vec(P_0 P) xx bm r|`. 即以 `vec(P_0 P), bm r` 为邻边的平行四边形在底边 `bm r` 上的高.
两直线的距离定义为两直线上的点之间的最短距离. 若两直线 `l_1, l_2` 平行, 则 `l_1` 上一点到 `l_2` 的距离就是 `l_1, l_2` 的距离; 若 `l_1, l_2` 相交或重合, 它们的距离为 0. 下面设 `l_1, l_2` 异面, 称分别与 `l_1, l_2` 垂直相交 (即正交) 的直线为 `l_1, l_2` 的公垂线, 两垂足之间的线段称为公垂线段.
两异面直线的公垂线存在唯一.
设两异面直线 `l_i` 分别经过点 `P_i`, 其方向向量分别为 `bm r_i`, `i = 1, 2`. 则它们的距离等于其公垂线段长, 即 `|(vec(P_1 P_2)"," bm r_1"," bm r_2)| / |bm r_1 xx bm r_2|`. 这个公式说明, 两异面直线的距离等于以 `vec(P_1 P_2), bm r_1, bm r_2` 为棱的平行六面体的体积与以 `bm r_1, bm r_2` 的邻边的平行四边形的面积之比.
两直线所成的角规定为它们方向向量夹角中不大于 `pi//2` 的那一个. 直线与平面所成的角规定为直线和直线在平面上的射影所成的角. 当直线与平面垂直时, 它们的夹角规定为 `pi//2`.
曲线族的包络
设 `gamma` 是平面曲线, 若它与曲线族 `Gamma` 中的每一条曲线 `gamma_t in Gamma` 都相切, 则称 `gamma` 是 `Gamma` 的一条包络线.
若包络线 `gamma` 存在, 且在 `(x(t), y(t))` 处与 `gamma_t: F(x, y, t) = 0` 相切, 则可以证明 `gamma` 满足下面的方程组:
`{ F(x, y, t) = 0; F_t(x, y, t) = 0 :}`
视 `t` 为参数, 从方程组中解出 `x(t), y(t)`, 则得到参数方程. 另一方面, 消去参数 `t` 也可以得到隐方程.
这个方程组确定的曲线称为 `t`-检验曲线.
特别当 `Gamma` 为直线族时, 设 `F(x, y, t) = f(t) x + g(t) y - h(t)`, `t`-检验曲线为
`{ f(t) x + g(t) y = h(t); f'(t) x + g'(t) y = h'(t) :}`
这是线性方程组, 我们可以轻松解得包络线的参数方程.
求曲线族 `(x - t)^2 + y^2 = 1` 的包络.
直观上这是一族平移的圆, 它的包络应该是上下两条切线. 列出 `t`-检验曲线: `{ (x-t)^2 + y^2 = 1; 2(t-x) = 0 :}` 由第二式得 `t = x`, 代入第一式得 `y^2 = 1`. 我们同时得到了两条包络线.
求直线族 `1/2 x cos t + y sin t = 1`, `t in [0, 2pi)` 的包络.
列出方程组 `{ 1/2 x cos t + y sin t = 1; -1/2 x sin t + y cos t = 0 :}` 从上式解出 `x, y` 就得到参数方程. 现在我们求隐方程, 两式平方相加得 `x^2/4 + y^2 = 1`, 这是一个椭圆.
求椭圆 `(a cos t, b sin t)` 的全体法线组成的直线族及其包络.
在平面直角坐标系中, 求直线 `A_k B_k` 的包络线与坐标轴围成图形的面积, 其中 `A_k(0, k/n)`, `B_k((n+1-k)/n, 0)`, `k = 1, 2, cdots, n`.
记 `k/n = t`, 则直线束可以用 `x/(1-t) + y/t = 1`, `quad t in (0, 1)` 来近似. 解方程组 `{x/(1-t) + y/t = 1; x/(1-t)^2 - y/t^2 = 0 :}` 得到 `x = (1-t)^2`, `y = t^2`. 隐方程为 `sqrt x + sqrt y = 1`, 或 `y = 1 - 2 sqrt x + x`. 面积为 `int_0^1 (1 - 2 sqrt x + x) dx` `= 1 - 4/3 + 1/2 = 1/6`.
中心投影变换: 平面凸四边形变换为矩形
[来自 机智的小伟]
已知四棱锥的顶点为 `bm v`, 底面为单位正方形 `R`:
`bm r_00 = (0, 0, 0)`, `bm r_01 = (0, 1, 0)`, `bm r_10 = (1, 0, 0)`, `bm r_11 = (1, 1, 0)`.
现有一个平面四边形 `Q`, 其中一个顶点与原点重合: `bm q_00 = bm r_00`,
另外三个顶点 `bm q_01`, `bm q_10`, `bm q_11` 分别位于四棱锥的三条棱上.
由于四边形 `Q` 的各顶点共面, 我们设
`bm q_11 = a_0 bm q_10 + a_1 bm q_01`.
这里的 `a_0, a_1` 为已知数.
我们的问题如下:
假设顶点 `bm v` 处有一光源, 使矩形与四边形处于相互射影的关系中, 试确定这个函数关系.
注: 矩形上一点的坐标和四边形上一点的坐标分别用基底表示为
`bm r = x_0 bm r_10 + x_1 bm r_01`,
`bm q = y_0 bm q_10 + y_1 bm q_01`.
于是只需确定 `(x_0, x_1)` 和 `(y_0, y_1)` 之间的函数关系.