Muster von Linien - Wieso ist das so?

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Muster von Linien - Wieso ist das so?

 · 
Posted: 09.03.2017 - 09:47  ·  #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
Attachments
Muster von Linien - Wieso ist das so?
Filename: gDrawLine.png
Filesize: 105.86 KB
Title:
Download counter: 78
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: Muster von Linien - Wieso ist das so?

 · 
Posted: 09.03.2017 - 22:02  ·  #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
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: Muster von Linien - Wieso ist das so?

 · 
Posted: 14.03.2017 - 15:53  ·  #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
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 11 · Cache Hits: 15   66   81 · Page-Gen-Time: 0.015079s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI