Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#1

Koordinatensystem / Gitternetzlinien in TImage

  Alt 30. Jan 2003, 23:31
Delphi-Quellcode:
procedure TForm1.btn_DrawGridClick(Sender: TObject);
const GridSize : Integer = 20;
var xSteps, ySteps, xIndex, yIndex : Integer;
begin
  If not Image1.Picture.Bitmap.Empty Then
    With Image1.Picture.Bitmap Do
    Begin
      xSteps:= Width div GridSize;
      ySteps:= Height div GridSize;

      With Canvas Do
      Begin

        Pen.Width:= 1;
        Pen.Color:= clSilver;
        Pen.Style:= psSolid;

        For xIndex:= 0 To xSteps Do
          For yIndex:= 0 To ySteps Do
          Begin
            MoveTo( 0, yIndex*GridSize ); LineTo( Width, yIndex*GridSize );
            MoveTo( xIndex*GridSize, 0 ); LineTo( xIndex*GridSize, Height );
          End;
      End;
    End
  Else
    ShowMessage( 'Kein Bild verfügbar.' );
end;
Das Ergebnis ist hier zu sehen!

Von DrDangerous!

Grüsse, Daniel

Ein Verbesserungsvorschlag von CarstenB:

Zitat:
Man sollte die beiden Zählschleifen trennen, da sonst alles zig mal gezeichnet wird, was merklich auf die Performance gehen dürfte.

Delphi-Quellcode:
For xIndex:= 0 To xSteps Do begin
  MoveTo( xIndex*GridSize, 0 ); LineTo( xIndex*GridSize, Height );
End;
For yIndex:= 0 To ySteps Do Begin
  MoveTo( 0, yIndex*GridSize ); LineTo( Width, yIndex*GridSize );
end;
[edit=Luckie]Verbesserungsvorschlag von CarstenB. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat