.. .. .. ..   ..
BlitzBasic > Codearchiv > MathematikAktuallisiert 30.05.2009

..  Interpolation - von Triton 
Dieses Programm interpoliert einen Graphen zwischen einer beliebigen Anzahl an gegebenen Punkten, wobei diese die Eigenschaften einer Funktion erfüllen müssen, d.h keine 2 Punkte haben den selben y-Wert und ein späterer Punkt ist niemals weiter links als ein früherer. Das Programm erzeugt die Graphenabschnitte mit h alben Cosinus-Kurven, die bei den gegebenen Punkten jeweils den Anstieg 0 aufweisen und daher einen glatten Übergang zwischen den Punkten erzeugen können.

;** Interpolierung von Punkten
;** 02.04.2006 by Triton
Graphics 800,600,16,2
SetBuffer BackBuffer()
Global panzahl=5
panzahl=panzahl-1
Dim punkte(panzahl,1)

punkte(0,0)=100
punkte(0,1)=100

punkte(1,0)=200
punkte(1,1)=240

punkte(3,0)=480
punkte(3,1)=120

punkte(4,0)=600
punkte(4,1)=20

While Not KeyDown(1)
	punkte(2,0)=MouseX()
	punkte(2,1)=MouseY()
	interpol
Flip
Cls
Wend

;--
Function interpol()

For px = 0 To panzahl-1
	Oval punkte(px,0)-3,punkte(px,1)-3,6,6
	Text punkte(px,0),punkte(px,1),px+1
	If px <= panzahl Then
		lambda=(punkte(px+1,0)-punkte(px,0))
		For x = 0 To lambda
			amp=(punkte(px+1,1)-punkte(px,1))/2
			y = -Cos(x*180/lambda)*amp
			Plot x+punkte(px,0),y+amp+punkte(px,1)
		Next
	End If
Next
Oval punkte(panzahl,0)-3,punkte(panzahl,1)-3,6,6
Text punkte(panzahl,0),punkte(panzahl,1),panzahl+1

End Function