求直线对称点最快办法
已知点P(x1,y1)不在直线l:Ax+By+C=0上, 求点P关于直线l的对称点Q(x2,y2)
先找直线l的一个法向量n=(A,B),
于是相应直线l方向向量可取m=(−B,A)
然后根据对称原理: 垂直且平分, 得到二元一次方程组,
l与PQ垂直得 m⋅PQ=0, 于是
①−B(x2−x1)+A(y2−y1)=0
根据线段PQ的中点在直线l上得:
②A2x1+x2+B2y1+y2+C=0
下面给出解方程组的技巧:
可以把②式可改写成
③A(x2−x1)+B(y2−y1)=−2(Ax1+By1+C)
通过 A×③−B×①, 得
x2−x1=−2AA2+B2Ax1+By1+C
通过 A×①+B×③, 得
y2−y1=−2BA2+B2Ax1+By1+C
简单移项目, 可得x2与y2的坐标
先找直线l的一个法向量n=(A,B),
假设点P到直线l的距离为d, 则根据距离公式
d=A2+B2∣Ax1+By1+C∣
-
若n与向量PQ同向, 则
PQ=2d∣n∣n=2A2+B2∣Ax1+By1+C∣n
-
若n与向量PQ异向, 则
PQ=−2d∣n∣n=−2A2+B2∣Ax1+By1+C∣n
一旦算出向量PQ, 那么Q点坐标可以表示为
OQ=OP+PQ
最后经过讨论可去绝对值, 推出最终结论为:
Q=(x1,y1)−2A2+B2Ax1+By1+C(A,B)
这是最容易推导也最好理解的一种推导办法, 缺陷是去绝对值比较麻烦一点
先找直线l的一个单位法向量τ=A2+B21(A,B),
任取直线l上一点H(x0,y0), 则有
PQ=2(PH⋅τ)τ
以及
Ax0+By0+C=0
再联立OQ=OP+PQ, 得
OQ=(x1,y1)+2A2+B2A(x0−x1)+B(y0−y1)(A,B)=(x1,y1)−2A2+B2Ax1+By1+C(A,B)
要注意到点P到直线l的距离d=∣PH⋅τ∣,方法二也可由方法一推导出来
先求垂点, 再算对称点
设点P到l的距离为d,
构造圆C:(x−x1)2+(y−y1)2=d2
设线段PQ的中点为M(x0,y0), 则M在圆上, 且圆C在M处的切线恰好是l, 根据圆的切线公式有:
l:(x0−x1)(x−x1)+(y0−y1)(y−y1)=d2,
另一方面, 根据已知条件l的表达式可转化为
l:A(x−x1)+B(y−y1)=−Ax1−By1−C,
同一条直线, 系数一定成比例, 也就是存在实数k, 使得
⎩⎨⎧x0−x1=kAy0−y1=kBd2=k(−Ax1−By1−C)
根据距离公式d=A2+B2∣Ax1+By1+C∣, 整理可得
{x0=x1+kAy0=y1+kB,k=−A2+B2Ax1+By1+C.
最后可得对称点为
{x2=x1+2kAy2=y1+2kB,k=−A2+B2Ax1+By1+C.
已知点P(x1,y1)不在直线l:Ax+By+C=0上, 求点P到直线l的垂足点M.
答案为:
OM=(x1,y1)−A2+B2Ax1+By1+C(A,B)
推导过程同上,
理解记忆就是
找直线l的一个法向量n=(A,B), 则如果该法向量与PM同向, 有
PM=d∣n∣n
于是
OM=OP+PM=OP+d∣n∣n
向量法和圆切线法是求对称点或者垂足点的快速算法
已知不重合的两点Q(x2,y2,z2)和R(x3,y3,z3)在直线l上, 求P(x1,y1,z1)在l上的垂足点H(x0,y0,z0).
由共线
即系数贡献
和为1的原理
可设OH=tOQ+(1−t)OR=(tx2+(1−t)x3,ty2+(1−t)y3,tz2+(1−t)z3)
根据垂直关系PH⊥RQ, 有
[tx2+(1−t)x3−x1]⋅(x2−x3)+[ty2+(1−t)y3−y1]⋅(y2−y3)+[tz2+(1−t)z3−z1]⋅(z2−z3)=0
可解出
t=∣QR∣2RP⋅RQ
回代可得OH
如果为了求点到直线距离, 也可以直接设
PH=tPQ+(1−t)PR
这里的t和原来式子中的t相等
已知直线(或平面)的单位法向量为n, Q为该直线(或平面)上一点, P为直线(或平面)外一点, 则
-
P到该直线(或平面)的距离d为
d=∣PQ⋅n∣
-
设P到该直线(或平面)的垂足点H, 有
OH=(PQ⋅n)n
点我返回主页, 查看更多精彩
参考链接