Einzelnen Beitrag anzeigen

kevSTAR

Registriert seit: 5. Jun 2007
117 Beiträge
 
#16

Re: Object bewegung (richtungen)

  Alt 28. Jun 2007, 20:53
Zitat von NamenLozer:
Gib den Leuten doch auch mal Zeit, deinen Beitrag zu lesen. Pushen ist erst ab 24 Stunden erlaubt.

Delphi-Quellcode:
winkel := 90 * pi / 180;
x := 100;
y := 100;
x1 := cos(winkel);
y1 := sin(winkel);
x := round(x1)+500;
y := round(y1)+500;


paintbox.paint: // btw: das hier kann gar nicht gehen, weil da ein Doppelpunkt statt einem Semikolon steht

paintbox1.canvas.Pen.Color := clblack;
Paintbox1.Canvas.MoveTo(100,100);
Paintbox1.Canvas.LineTo(x,y);
Was mir als erstes auffällt ist, dass du x und y den wert 100 zuweist, den du aber nie benutzt. Außerdem kannst du im OnCreate noch nicht zeichnen. Packe das ganze Zeug in's OnPaint des Formulars oder noch besser der Paintbox. Außerdem hast du einen großen Denkfehler drin: Wenn du eine längere Linie Zeichnen willst, musst du x1 und y1 mit einem Wert multiplizieren, nicht einen Wert dazuaddieren!
das mit dem : was du kommentiert hast heisst nur das die folgenden zeilen in der onpaint prozedur der paintbox sind er macht trotzdem nich das richtige


EDIT:


so habe ich es jetzt:



procedure TForm1.FormCreate(Sender: TObject);
begin
winkel := 90 * pi / 180;
x := clientwidth div 2;
y := clientheight div 2;
x1 := x+cos(winkel);
y1 := x+sin(winkel);
x := round(x1);
y := round(y1);

end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
paintbox1.canvas.Pen.Color := clblack;
Paintbox1.Canvas.MoveTo(ClientWidth div 2,clientheight div 2);
Paintbox1.Canvas.LineTo(x,y);
end;
  Mit Zitat antworten Zitat