öhm. p0 ist der anfangspunkt, p1 der "hilfspunkt" und p2 der endpunkt. Also bei mir hats funktioniert.
EDIT:
Hier mal etwas mehr QT:
Delphi-Quellcode:
var
Form1: TForm1;
state:byte;
p0,p1,p2:TPoint;
implementation
{$R *.nfm}
procedure TForm1.Neu1Click(Sender: TObject); //Neue Kurve zeichnen
begin
state:=0;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
state:=0;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i,hx,hy:integer;
begin
case state of
0:
begin
state:=1;
P0.X:=X;
P0.Y:=Y;
end;
1:
begin
state:=2;
P1.X:=X;
P1.Y:=Y;
end;
2:
begin
state:=3;
P2.X:=X;
P2.Y:=Y;
self.Canvas.MoveTo(P0.x,P0.y);
for i := 0 to 1000 do
begin
hx:=round(sqr(1-i/1000)*P0.X+2*i/1000*(1-i/1000)*P1.X+sqr(i/1000)*P2.X);
hy:=round(sqr(1-i/1000)*P0.y+2*i/1000*(1-i/1000)*P1.y+sqr(i/1000)*P2.y);
self.Canvas.LineTo(hx,hy);
state:=0;
end;
end;
end;
end;
durhc 3x klicken werden die Punkte festgelegt.