Thema: Delphi Bezierkurven

Einzelnen Beitrag anzeigen

Ratte

Registriert seit: 12. Dez 2003
Ort: Erfurt
345 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Bezierkurven

  Alt 26. Dez 2006, 16:25
ö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.
Schiffsratte der U.S.S. Delphipraxis, Laderaum 4538
BUSH:= TTerminator.create;
  Mit Zitat antworten Zitat