У меня две линии на графике в полулогарифмическом масштабе. Line1 имеет зеленый цвет, а Line2 - темно-фиолетовый. Как найти точку пересечения между Line1 (зеленый) и Line2 (темно-фиолетовый)? Я пробовал формулу пересечения на основе Википедии ссылка , но она вернула красную линию.
import numpy as np
import matplotlib.pyplot as plt
xmin, xmax = 2000, 7000
ymin, ymax = 10, 50000
#lighting fixture limitation
cct_min = 2700
cct_max = 6000
illu_min = 110
illu_max = 2100
def findIntersection(x1,y1,x2,y2,x3,y3,x4,y4):
px= ( (x1*y2-y1*x2)*(x3-x4)-(x1-x2)*(x3*y4-y3*x4) ) / ( (x1-x2)*(y3-y4)-(y1-y2)*(x3-x4) )
py= ( (x1*y2-y1*x2)*(y3-y4)-(y1-y2)*(x3*y4-y3*x4) ) / ( (x1-x2)*(y3-y4)-(y1-y2)*(x3-x4) )
return [px, py]
#arrays
x_grid = np.array([2000, 3000, 4000, 5000, 6000, 7000])
x = np.linspace(xmin, xmax)
#plot
fig, ax = plt.subplots(figsize=(8, 8))
ax.set_xlim(xmin=xmin, xmax=xmax)
ax.set_ylim(ymin=ymin, ymax=ymax)
ax.set_yscale('log')
ax.axvline(x=4000, color='g', linestyle='-')
ax.plot([cct_min, cct_max],[illu_min,illu_max], color='darkviolet')
a,b = findIntersection(cct_min,illu_min,cct_max,illu_max,4000,10,4000,10000)
ax.axhline(y=b, color='r', linestyle='-')
plt.show()
Спасибо.