public Sub Bicubic(P As Path, X1 As Int, Y1 As Int, aX1 As Int, aY1 As Int, X2 As Int, Y2 As Int, aX2 As Int, aY2 As Int, Increment As Float)
Dim Percent As Float, X3 As Int, Y3 As Int, X4 As Int, Y4 As Int
If Increment <= 0 Then Increment = 0.01
MakePoint(P, X1, Y1)
Do Until Percent > 1
X3 = CalculatePoint(X1, aX1, Percent)
Y3 = CalculatePoint(Y1, aY1, Percent)
X4 = CalculatePoint(aX2, X2, Percent)
Y4 = CalculatePoint(aY2, Y2, Percent)
X3 = CalculatePoint(X3, X4, Percent)
Y3 = CalculatePoint(Y3, Y4, Percent)
MakePoint(P, X3, Y3)
Percent=Percent+Increment
Loop
MakePoint(P, X2, Y2)
End Sub
Public Sub CalculatePoint(PT1 As Int, PT2 As Int, Percent As Float) As Int
Return (PT2 - PT1) * Percent + PT1
End Sub
Sub MakePoint(P As Path, X As Int, Y As Int)
If P.IsInitialized Then
P.LineTo(X,Y)
Else
P.Initialize(X,Y)
End If
End Sub