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;