AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Koordinatensystem in TImage
Thema durchsuchen
Ansicht
Themen-Optionen

Koordinatensystem in TImage

Ein Thema von sam24 · begonnen am 29. Okt 2002 · letzter Beitrag vom 30. Okt 2002
 
DrDangerous

Registriert seit: 5. Okt 2002
17 Beiträge
 
#5
  Alt 30. Okt 2002, 09:50
Hallo Sam,

wie Christrian schon sagte, Linienbreiten unterhalb 1 Pixel wirst Du nicht schaffen können. Du kannst allenfalls die Farbe der Linien anpassen, so dass sie rein optisch weniger ins Gewicht fallen; zum Beispiels durch Verwendung eines Grautones.

Ich habe mal mit folgendem Code ein Raster auf ein Bild gemalt. Vielleicht kannst Du anhand dieses Beispiels erklären, was daran jetzt noch zu dick ist.
(Es geht mir im Moment weniger um die nicht vorhandene Eleganz dieses Codes... also bitte nicht meckern..)

Code:
[b]procedure[/b] TForm1.btn_DrawGridClick(Sender: TObject);
[b]const[/b] GridSize : Integer = 20;
[b]var[/b] xSteps, ySteps, xIndex, yIndex : Integer;
[b]begin[/b]
  [b]If not[/b] Image1.Picture.Bitmap.Empty [b]Then[/b]
    [b]With[/b] Image1.Picture.Bitmap [b]Do[/b]
    [b]Begin[/b]
      xSteps:= Width [b]div[/b] GridSize;
      ySteps:= Height [b]div[/b] GridSize;

      [b]With[/b] Canvas [b]Do[/b]
      [b]Begin[/b]

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

        [b]For[/b] xIndex:= 0 [b]To[/b] xSteps [b]Do[/b]
          [b]For[/b] yIndex:= 0 [b]To[/b] ySteps [b]Do[/b]
          [b]Begin[/b]
            MoveTo( 0, yIndex*GridSize ); LineTo( Width, yIndex*GridSize );
            MoveTo( xIndex*GridSize, 0 ); LineTo( xIndex*GridSize, Height );
          [b]End;[/b]
      [b]End;[/b]
    [b]End[/b]
  [b]Else[/b]
    ShowMessage( 'Kein Bild verfügbar.' );
[b]end;[/b]
Das von diesem Code produzierte Bild siehst Du im Anhang. Wenn man dieses jetzt mitsamt des Gitters vergrößert, so werden die Linien natürlich ebenfalls größer (breiter). Als Abhilfe könntest Du jeweils das Original skalieren und erst danach das Gitter zeichnen. Die Operation geht recht schnell und Du bist wieder bei Linienbreiten von genau 1 Pixel.
Angehängte Grafiken
Dateityp: gif 253_1035971415.gif (84,1 KB, 521x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz