![]() |
Diagonales Raster zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe ein vergebenes Rect (Bereich), den ich gern mit einem diagonalen Raster füllen möchte. Der gesamte Bereich soll damit ausgefüllt sein. Gibt es einen einfachen Algorithmus, der dies in zwei Schleifen zuverlässig tut? Wie sieht dieser aus? Vermutlich muss man der Zeichenbereich clippen. |
AW: Diagonales Raster zeichnen
|
AW: Diagonales Raster zeichnen
Zitat:
|
AW: Diagonales Raster zeichnen
Hi hansklok
Schau dir doch mal das an: ![]() ![]() ![]() Die Diagonale erreichst du, indem du die einzelnen Rasterpunkt gegeneinander versetzt. Gruss Delbor |
AW: Diagonales Raster zeichnen
Zitat:
danke für Deinen Beitrag. Wie müsste ich diesen Code hier modifizieren, damit die Rasterpunkte gegeneinander versetzt werden?
Delphi-Quellcode:
for rx := 0 to (img_main.Width div gridsize) do
for ry := 0 to (img_main.Height div gridsize) do img_main.Canvas.Pixels[rx*gridsize,ry*gridsize] := clGrey; |
AW: Diagonales Raster zeichnen
ein horizontales/vertikales Raster besteht aus Linien, bei denen entweder alle X gleich sind (vertikale Linien), oder alle Y.
Solange es immer ein 45° Winkel sein soll, gilt für das diagonale Raster: Es gibt Linien bei denen X+Y gleich ist (Diagonale von links unten nach rechts oben) und solche bei denen X-Y gleich ist (andere Richtung) Also ganz einfacher Fall: Die beiden Linien X+Y = 100 und X-Y = 10 ergeben schon mal 2 Linien die sich kreuzen. Für mehr Linien brauchst du entsprechend viele Werte, also zum Beispiel alle durch 10 teilbaren. Das kannst du also in deine Scheife packen: Ein Pixel ist dann schwarz, wenn X+Y mod 10 = 0 oder wenn X-Y mod 10 = 0 ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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