2024-09-01
数学之美
00

一个高中数学题目,已经点P1和点P2构成直线,经过P3点做已知直线的垂线,求垂线与已知直线的交点坐标。

在这里插入图片描述

python
p1 = [100, 15] p2 = [16, 85] p3 = [-50, 100] if p2[0] - p1[0] == 0: # p1 p2 构成垂线,那么垂直线就是一条水平线 x = p1[0] y = p3[1] elif p2[1] - p1[1] == 0: # p1 p2 构成水平线,那么垂直线就是一条垂直线 x = p3[0] y = p1[1] else: slope = (p2[1] - p1[1]) / (p2[0] - p1[0]) perpendicularSlope = -1 / slope intercept = p3[1] - perpendicularSlope * p3[0] x = (p3[1] - p1[1] + slope * p1[0] - perpendicularSlope * p3[0]) / (slope - perpendicularSlope) y = slope * (x - p1[0]) + p1[1] # 绘制两条直线和交点 import matplotlib.pyplot as plt plt.figure(figsize=(10, 10)) plt.plot([p1[0], p2[0]], [p1[1], p2[1]], color='b') plt.plot([p3[0], x], [p3[1], y], color='r') plt.scatter([x], [y], color='r') # 给P1,P2,P3点加注释 plt.annotate('P1', xy=(p1[0], p1[1]), xytext=(p1[0] + 0.5, p1[1] + 0.5)) plt.annotate('P2', xy=(p2[0], p2[1]), xytext=(p2[0] + 0.5, p2[1] + 0.5)) plt.annotate('P3', xy=(p3[0], p3[1]), xytext=(p3[0] + 0.5, p3[1] + 0.5)) # 给交点加注释 plt.annotate('JD', xy=(x, y), xytext=(x + 0.5, y + 0.5)) # 让坐标轴比例一样 plt.axis('equal') plt.show()
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!