Hallo, dein Dreieck ist vollkommen korrekt, auch wenn es nicht so aussieht.
Wenn man sich nur mal die Endpunkte noch mit einzeichnet, dann fällt es bestimmt besser auf, daß es wirklich stimmt.
Delphi-Quellcode:
procedure TForm5.FormPaint(Sender: TObject);
var
X, Y, S, I, J, K: Integer;
A: array[0..2] of TPoint;
begin
X := 20;
Y := 20;
S := 3;
A[0] := Point(X - S, Y - S);
A[1] := Point(X + S, Y - S);
A[2] := Point(X, Y + S {+ 1});
for I := Low(A) to High(A) do
for J := -1 to +1 do
for K := -1 to +1 do
Canvas.Pixels[A[I].X + J, A[I].Y + K] := clRed;
Canvas.Pen.Color := clBlue;
Canvas.Polygon(A);
end;
Die Zeichenfunktion der rechten Linie ist natürlich andersrum. (von oben nach unten ... von unten nach oben)
Links von oben aus jeweils Zwei runter und dann Eines nach rechts.
Und Rechts jeweils Zwei nach oben und Eines nach rechts.
Passt also ganz genau dazu, wie du es auch zeichnen wolltest.
Bei einer geraden Anzahl (siehe Auskommentiertes) passt es wohl besser zusammen, für diesen Fall der 2:1-Steigung = 2x.