Function IntpoHyp(ByVal X As Double, ByVal X1 As Double, ByVal Y1 As Double, _
ByVal X2 As Double, ByVal Y2 As Double, _
ByVal X3 As Double, ByVal Y3 As Double) As Double
Dim dX As Double, dY As Double: dX = X3 - X1: dY = Y3 - Y1: If dY = 0 Then IntpoHyp = Y1: Exit Function
IntpoHyp = Y1 + dY * F0à1xyInt((X - X1) / dX, (X2 - X1) / dX, (Y2 - Y1) / dY)
End Function
Function F0à1xyInt(ByVal X As Double, ByVal XInt As Double, ByVal YInt As Double) As Double
Dim Dét As Double, A As Double, B As Double
Dét = XInt - YInt
If Abs(Dét) > 2.3283064365387E-10 Then
A = XInt * (YInt - 1) / Dét
B = YInt * (XInt - 1) / Dét
If X <> -A Then F0à1xyInt = B - (A * B) / (X + A)
Else
F0à1xyInt = X: End If
End Function