![]() |
Trotz Rundung prezise zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi Praxis,
Ich rechne ein Netz aus Waagerechten udn Senkrechten Linien in einer Schleife aus.
Delphi-Quellcode:
KaestchenBreite :=round((Zeichenflaeche.Width-RandLinks-RandRechts)/AnzahlSpalten);
KaestchenHoehe :=round((Zeichenflaeche.Height-RandOben-RandUnten)/AnzahlZeilen);
Delphi-Quellcode:
Das Ganze sieht aus wie im Anhang.
for Zeilenzaehler := 0 to AnzahlZeilen do
begin Form1.Canvas.MoveTo(RandLinks,RandOben + Zeilenzaehler*Kaestchenhoehe); Form1.Canvas.LineTo((Zeichenflaeche.Width-RandRechts),RandOben + Zeilenzaehler*Kaestchenhoehe); end; for Spaltenzaehler := 0 to AnzahlSpalten do begin Form1.Canvas.MoveTo(RandLinks + Spaltenzaehler*KaestchenBreite ,RandOben); Form1.Canvas.LineTo(RandLinks + Spaltenzaehler*KaestchenBreite ,(Zeichenflaeche.Height-RandOben)); end; Wenn ich die Größe des Programmsändere ändert sich auch die Größe des Rasters, bei einigen Größen treten durch die Rundung Fehler auf. Es dürfen aber auch unten rechts nur volle Kästchen entstehen. Weiß jemand, wie ich immer volle Kästchen bekomme? FG Dunkelbunt |
AW: Trotz Rundung prezise zeichnen
Das Problem ist das
Delphi-Quellcode:
– änder mal den Variablentyp in
round()
Delphi-Quellcode:
oder
single
Delphi-Quellcode:
und verschiebe das
double
Delphi-Quellcode:
in die Berechnung in der Schleife:
round()
Delphi-Quellcode:
KaestchenBreite := (Zeichenflaeche.Width - RandLinks - RandRechts)/AnzahlSpalten;
KaestchenHoehe := (Zeichenflaeche.Height - RandOben - RandUnten)/AnzahlZeilen; for Zeilenzaehler := 0 to AnzahlZeilen do begin Form1.Canvas.MoveTo(RandLinks, round(RandOben + Zeilenzaehler*Kaestchenhoehe)); Form1.Canvas.LineTo(Zeichenflaeche.Width-RandRechts, round(RandOben + Zeilenzaehler*Kaestchenhoehe)); end; { ... } |
AW: Trotz Rundung prezise zeichnen
Deine Längen- und Höhenbestimmung für Zeilen und Spalten stimmt nicht.
Vermutlich ist
Delphi-Quellcode:
keiner als
(Zeichenflaeche.Width-RandRechts)
Delphi-Quellcode:
.
RandLinks + AlzahlSpalten*KaestchenBreite
Bernhard |
AW: Trotz Rundung prezise zeichnen
@ rollstuhlfahrer
Doch, es stimmt so wie es ist, aber trotzdem danke, du hast ja nur einen kleinen Ausschnitt gesehen. @ NamenLozer Super! Nun funktioniert es genau wie es soll. Danke euch beiden! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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