;** 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
|