直线方程初探
平行与垂直
平行即斜率相同,在一般式 \(Ax+By+C=0\) 中,如果要判断平行,记住斜率 \(-\dfrac{A_1}{B_1}=-\dfrac{A_2}{B_2}\) 就行了,当然在带入数之前,要适当地对等式施加一些变换,这样之后代入数之后才更好算。
垂直靠方向向量的点积等于零推出来,即 \(1+k_1k_2=0\),即 \(k_1k_2=-1\),在一般式中就是 \(\dfrac{A_1A_2}{B_1B_2}=-1\),当然正如上面所说的,先在脑子里把这个式子换成 \(A_1A_2+B_1B_2=0\) 会更好,因为现在这种形式符号一般会更少,脑子更容易处理。
距离问题
两点间距离公式 \(\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}\)
点到直线的距离
如果是 \(P(x_0,y_0)\) 和 \(y=kx+b\),那么把 \(y=kx+b\) 和 \(y-y_0=-\dfrac1k(x-x_0)\) 联立,最后用两点间距离公式就行了。
如果是 \(P(x_0,y_0)\) 和 \(Ax+By+C=0\),有一个很简便的公式 \(d=\dfrac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}\)。(这玩意不比上面那个傻逼联立好用?)
这个公式在 \(A=0\) 或 \(B=0\) 的情况也能用。
这个有很多推导方法,要是闲着没事,我往这里放了一种,可以看看。
以下推导默认 \(A\neq0\and B\neq0\)。
首先有一个小插曲,\(Ax_0+By_0+C\) 在 \((x_0,y_0)\) 不在直线上时看似没有意义对吧?毕竟直线本身就是 \(x,y\) 两个维度之间的关系,但是如果只确定一个维度,直线上是必然存在一个点的。
那么必有 \(x_1,y_1\) 使得 \((x_0,y_1)\) 和 \((x_1,y_0)\) 均在直线上,故而 \(Ax_0+By_0+C=Ax_0+By_1+C+B(y_0-y_1)=B(y_0-y_1)\),且 \(Ax_0+By_0+C=Ax_1+By_0+C+A(x_0-x_1)=A(x_0-x_1)\)。
那么设 \(\Delta x=x_0-x_1\),\(\Delta y=y_0-y_1\),显然 \(|\Delta x|\) 就是 \(P(x_0,y_0)\) 沿 \(x\) 轴方向到直线的距离,\(|\Delta y|\) 就是沿 \(y\) 轴方向到直线的距离,而且:
\[|\Delta x|=\left|\dfrac{Ax_0+By_0+C}{A}\right|\\ |\Delta y|=\left|\dfrac{Ax_0+By_0+C}{B}\right| \]那么这就形成了一个以 \(|\Delta x|\) 和 \(|\Delta y|\) 为边长的直角三角形,斜边上的高就是点到直线的距离。
如果算出了斜边长 \(L\),那么点到直线的距离 \(d=\dfrac{|\Delta x|\cdot|\Delta y|}L\)。
首先 \(L=\sqrt{|\Delta x|^2+|\Delta y|^2}=\sqrt{\dfrac{(A^2+B^2)(Ax_0+By_0+C)^2}{A^2B^2}}=\dfrac{\sqrt{A^2+B^2}}{|AB|}\cdot|Ax_0+By_0+C|\)
所以 \(d=\dfrac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}\)
平行直线的距离
这个公式是 点到直线的距离 公式的衍生。
得到它的具体方法是,先把两条直线整理成 \(A,B\) 都相同的状态,然后其中一条直线在 \(y\) 轴上的点(即 \((0,截距)\))到另一条直线上的距离就是所求了。
也就是 \(\dfrac{|C_1-C_2|}{\sqrt{A^2+B^2}}\)。
这个公式在 \(B=0\) 的时候也能用。
这两个公式是用有约束的情况推的,却能用到所有情况上,不免令人遐想:这类问题是否可以用更高的视角看待?
对称问题
关于直线对称的点
已知点 \(P(x_0,y_0)\),直线 \(Ax+By+C=0\),求点 \(P\) 关于直线的对称点 \(P'(x_1,y_1)\)。
还记得在本节的 **距离问题 **中证明 点到直线的距离公式 时用到的 \(Ax_0+By_0+C=?\) 的相关结论吗?
可以发现:
然而这个公式在 \(A=0\) 或是 \(B=0\) 的情况下不顶用,要减去两个 \(\Delta\),我在网上搜到了另一个公式:
这个公式在 \(A=0\) 或是 \(B=0\) 的情况也顶用。
这个是通过求直线和两个对称点所成直线的交点推出来的,我摸了,不证了。
关于直线对称的直线
有公式:
直线 \(ax+by+c\) 关于对称轴 \(Ax+By+C\) 的对称直线为:
证不了,摸了。
不用公式的话,如果对称轴水平或者竖直且直线与对称轴有交点还挺好求,其它情况就很操蛋。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用