跳到主要内容

直线、交点与共线共点

来源:《怎样三线》PDF 第 4、11 页,§0.3.5、0.4.3。

直线方程

重心坐标下,直线写成

ux+vy+wz=0.ux+vy+wz=0.

由于 A=(1:0:0)A=(1:0:0),直线经过 AA 当且仅当 u=0u=0。所以经过同一顶点的直线保留另外两坐标的固定比例:若 P=(p:q:r)P=(p:q:r)APAP 上的点可写成 (t:q:r)(t:q:r),顶点本身另行加入。

叉乘求连线和交点

把点坐标与直线系数都视作三元组。过 P,QP,Q 的直线系数为

=P×Q.\ell=P\times Q.

两条不同直线的交点为

X=1×2.X=\ell_1\times\ell_2.

这里是三元数组的代数叉乘,用于行列式运算;不是把三个重心坐标当成空间中的直角坐标。若叉乘结果为零组,通常意味着输入点重合或输入直线重合,需要重新判断。

共线与共点

三点共线当且仅当

det(x1y1z1x2y2z2x3y3z3)=0.\det\begin{pmatrix} x_1&y_1&z_1\\x_2&y_2&z_2\\x_3&y_3&z_3 \end{pmatrix}=0.

三线共点(含射影意义下的无穷远点)时,其系数行列式也为零。若题目要求有限共点,还需检查交点坐标和不为零。

平行与垂直

有限平面中 x+y+z=1x+y+z=1。因此

ux+vy+wz+λ(x+y+z)=0ux+vy+wz+\lambda(x+y+z)=0

表示一族平行直线,退化成常数方程的情形除外。

计算 MNMN 的方向时先将 M,NM,N 归一化。设两方向的坐标差为 d=(dx,dy,dz)d=(d_x,d_y,d_z)e=(ex,ey,ez)e=(e_x,e_y,e_z),两者坐标和均为零,则

de=12[a2(dyez+dzey)+b2(dzex+dxez)+c2(dxey+dyex)].\mathbf d\cdot\mathbf e=-\frac12\left[ a^2(d_ye_z+d_ze_y)+b^2(d_ze_x+d_xe_z)+c^2(d_xe_y+d_ye_x) \right].

点积为零就是垂直条件。需要夹角时再除以两方向向量的模长乘积。