Interpolation
Übersicht

![]() |
TritonBetreff: Interpolation |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal eine einfache (und im ganzen ziemlich unausgereifte) Form, um Graphen zu interpolieren, wenn nur wenige Punkte gegeben sind. Das ganze erstellt zwischen je 2 Punkten eine halbe cosinus-kurve; es endet und beginnt also mit dem Anstieg 0.
Code: [AUSKLAPPEN] ;** 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 However, gibt noch einiges an Verbesserungspotential. |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
- Zuletzt bearbeitet von Triton am Di, Apr 04, 2006 16:24, insgesamt einmal bearbeitet
![]() |
s_m_w |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir stürzt es aus einem unerfindlichen grund ab, wenn ich mich punkt 4 nähere. | ||
Sheep Happens |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, wenn der X-Unterschied zwischen 3 und 2 oder 3 und 4 Null ist, kommt es zur Division durch 0. Da praktisch aber kaum zwei Punkte eines Graphen den selben X-Wert haben werden, kann man das vernachlässigen, denke ich. Ansonsten eben um ein oder 2 Zeilen erweitern um es auszuschließen. | ||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group