Einzelnen Beitrag anzeigen

imagirom

Registriert seit: 20. Mär 2013
2 Beiträge
 
#1

EInvalidPointer bei rekursiver Funktion

  Alt 20. Mär 2013, 13:38
Delphi-Version: 5
Ich schreibe ein Programm, um Bezier-Kurven beliebeigen Grades darzustellen, erhalte aber immer den Fehler 'Ungültige Zeigeroperation'. Ich hab schon im Forum gesucht, und vermute, dass es mit den Arrays zu tun hat. Kann mir jemand helfen?

Code:
function TForm1.bezier(Punkte:array of real;t:real):real;
var Punkte1,Punkte2:array of real;
    i:integer;
    a,b,c:real;
begin
     if length(Punkte)=1 then
     begin
          c:=Punkte[0];
     end
     else begin
          setlength(Punkte1,length(Punkte)-1);
          setlength(Punkte2,length(Punkte)-1);
          for i:=0 to length(Punkte)-1 do
          begin
               Punkte1[i]:=Punkte[i];
               Punkte2[i]:=Punkte[i+1];
          end;
          a:=bezier(Punkte1,t);
          b:=bezier(Punkte2,t);
          c:=(1-t)*a+t*b;
     end;

     result:=c;
end;

Geändert von imagirom (20. Mär 2013 um 14:05 Uhr)
  Mit Zitat antworten Zitat