Muster von Linien - Wieso ist das so?

Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Muster von Linien - Wieso ist das so?

 · 
Gepostet: 09.03.2017 - 09:47 Uhr  ·  #1
Hallo @ all,

ich habe mal wieder eine vermutlich nicht beantwortbare Frage:

Folgender Code wurde geschrieben:
Code

Const
  ShowNum        : Array[0..14] of Byte = (%00111111, %00000110, %01011011,
                                           %01001111, %01100110, %01101101,
                                           %01111101, %00000111, %01111111,
                                           %01101111, %01100011, %00100000,
                                           %00100010, %00000000, %00000000);

// Programmauszug:
  For Counter:=0 to 14 do
    gDrawLine(Counter,0,Counter,8,ShowNum[Counter]);
    EndFor;


D.h. ich zeichne senkrechte Linien von Y-Koordinate 0 .. 8 mit dem Muster, das in den Konstanten liegt. Und (vielleicht ist es schon jemand aufgefallen) mit einer Länge von 9 Pixeln, obwohl das Muster von einem Byte dargestellt wird (=8 Bit =8 Pixel).
Wenn ich die Ausgabe wie folgt ändere:
Code

  For Counter:=0 to 14 do
    gDrawLine(Counter,0,Counter,7,ShowNum[Counter]);
    EndFor;

ist eine Linie nur 7 Pixel lang - es fehlen immer die (da die 15 Linien von oben nach unten und nebeneinander gezeichnet werden) untersten Pixel.

Vielleicht ist es auf der angehängten Grafik deutlicher.

Wieso ist das so?

Gruss
Harry
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: Muster von Linien - Wieso ist das so?

 · 
Gepostet: 09.03.2017 - 22:02 Uhr  ·  #2
Anscheinend gehöhrt der Endpunkt nicht mehr dazu: Der sprachliche Ausdruck "Bis zum Endpunkt" wird übrigens in unterschiedlichen Sprachen unterschiedlich interpretiert (Deutsch vs French).

In der Doku steht, dass der Endpunkt bereits Startpunkt für "rel" Line ist.
Vielleicht ein weiteres Indiz dafür, dass der Endpunt nicht mehr dazu gehört.

Ich gebe dir Recht, die Doku könnte das genauer beschreiben.

Auszug Doku:
Code
gDrawLine (Xs, Ys, Xe, Ye : integer; pattern : byte);
[...]Der Endpunkt der Linie wird in die ViewPort-Daten des aktuellen
ViewPorts als Linien Cursor abgelegt. Dieser Cursor wird dann als Startpunkt für die „Rel“ Linien
Operationen herangezogen.
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Muster von Linien - Wieso ist das so?

 · 
Gepostet: 14.03.2017 - 15:53 Uhr  ·  #3
Ich habe inzwischen noch was festgestellt: Wenn man diesen "Überhang" der Linie horizontal macht, dann werden die Pixel, die außerhalb des Zeichenbereiches liegen in die nächste Zeile übertragen. Je nach dem, ob da was steht und wie die Zeicheneigenschaften (gSetLineMode) sind, kann man damit ungewollt Pixel löschen oder setzen.

Gruss
Harry
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   64   78 · Page-Gen-Time: 0.058221s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI