Dreiecke zeichnen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Dreiecke zeichnen

Beitrag von 400kmh »

Hallo, ich möchte auf einem Canvas ausgefüllte Dreiecke zeichnen. Wie geht das?

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Dreiecke zeichnen

Beitrag von Eclipticon »

Vielleicht Canvas.Polygon() mit entsprechend gesetztem Canvas.Brush?

400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Re: Dreiecke zeichnen

Beitrag von 400kmh »

Eclipticon hat geschrieben:Vielleicht Canvas.Polygon() mit entsprechend gesetztem Canvas.Brush?
Ok, aber was muss Canvas.Polygon(>>hier<<) stehen und in welcher Reihenfolge?

Also, wie übergebe ich die drei nötigen X- und Y-Werte?

Jim92
Beiträge: 24
Registriert: Sa 29. Jan 2011, 13:09

Re: Dreiecke zeichnen

Beitrag von Jim92 »

Also ich mach das immer so, hat sich eigentlich bewährt:

Code: Alles auswählen

var
  A, B, C: TPoint;
begin
  WITH Panel1.Canvas do
    begin
      Pen.Color:=Farbe;
      Brush.Color:=Farbe;
      A.x:=Punkt1.X;
      A.y:=Punkt1.Y;
      B.x:=Punkt2.X;
      B.y:=Punkt2.Y;
      C.x:=Punkt3.X;
      C.y:=Punkt3.Y;
      Polygon([A,B,C]);
  end;
end;
Kannst die Definition der Punkte auch hintereinander in einer Reihe schreiben. Das ganze lässt sich auch beliebig erweitern, auf beliebige n-Ecke
Zuletzt geändert von Lori am Mo 24. Okt 2011, 16:49, insgesamt 1-mal geändert.
Grund: richtigen Highlighter

400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Re: Dreiecke zeichnen

Beitrag von 400kmh »

Jim92 hat geschrieben:Also ich mach das immer so, hat sich eigentlich bewährt:

Code: Alles auswählen

var
  A, B, C: TPoint;
begin
  WITH Panel1.Canvas do
    begin
      Pen.Color:=Farbe;
      Brush.Color:=Farbe;
      A.x:=Punkt1.X;
      A.y:=Punkt1.Y;
      B.x:=Punkt2.X;
      B.y:=Punkt2.Y;
      C.x:=Punkt3.X;
      C.y:=Punkt3.Y;
      Polygon([A,B,C]);
  end;
end;
Kannst die Definition der Punkte auch hintereinander in einer Reihe schreiben. Das ganze lässt sich auch beliebig erweitern, auf beliebige n-Ecke
Danke, scheint zu funktionieren.

Antworten