给定一条由方程 y=kx 给出的直线和一段 PB1。需要找到这些线的交点的坐标,并将其绘制在图形上。
import numpy as np
import matplotlib.pyplot as plt
p = (input("choose point P on axis OX: "))
print(p)
k = np.random.rand(1)
X = np.arange(-50, 50, 1)
Y = k*X
# arbitrary line across O
plt.plot(X,Y)
plt.plot(0,0)
plt.scatter(0.0, 0.0, color='white', marker='o')
plt.text(0.0, 0.0, "O", horizontalalignment="center")
plt.plot(p,0)
plt.scatter(p, 0.0, color='green', marker='o')
plt.text(p, 0.5, "P", horizontalalignment="center")
xmin= -50
xmax= 50
ymin= -50
ymax= 50
ax = plt.gca()
ax = plt.gca()
ax.set_xlim([xmin,xmax])
ax.set_ylim([ymin,ymax])
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
#create random point B1
b1 = 14
plt.plot(0.0,b1)
plt.scatter(0.0, b1, color='blue', marker='o')
plt.text(0.5, b1, "B1", horizontalalignment="center")
#create PB1
plt.plot([0,p],[b1,0])
plt.show()

使用链接提供的答案:https ://stackoverflow.com/questions/28766692/intersection-of-two-graphs-in-python-find-the-x-value 找到线交点的实现是:
结果显示为:
在这种简单的情况下,找到一个点——据我所知,某种搜索——并不是很合理。解方程就足够了:
在这种情况下,是这样的: