•  Back 
  •  Line-A 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File6.11  Filled polygon                                               TOS

 Name:          »Filled polygon«

 Line-A Nummer: $A006

 Binding:       Bindings für filled_polygon

 Beschreibung:  Diese Line-A Funktion zeichnet eine Zeile eine 
                ausgefüllten Polygons durch Aufrufe der Horizontal 
                line Funktion. Zum Zeichnen des gesamten Polygons muß 
                diese Funktion für jede mögliche Y-Koordinate 
                aufgerufen werden. Zusätzlich besteht wie bei Filled 
                rectangle die Möglichkeit, das Zeichnen des Rechtecks 
                nur in einem zusätzlich übergebenen Clip-Bereich 
                zuzulassen.

                Sämtliche Punkte des Polygons werden in dem Feld ptsin 
                übergeben, die Anzahl der Punkte steht im zweiten 
                Element des contrl Feldes. In C steht damit in 
                contrl[1] die Anzahl Punkte, ptsin[0] die X-Koordinate 
                des ersten Punkts, ptsin[1] die Y-Koordinate des 
                ersten Punkts, ptsin[2] die X-Koordinate des zweiten 
                Punkts, ... Der letzte Punkt in ptsin muß wieder der 
                erste Punkt sein, damit das Polygon geschlossen ist! 
                Die Y-Koordinate der zu zeichnenden Zeile wird in dem 
                Line-A Parameterblock in y1 übergeben.

                Die folgenden Line-A Variablen werden benutzt:

                 Variable  Bedeutung

                 y1        Y-Koordinate der zu zeichnenden Zeile.
                 fg_bp_1   Bitwert der ersten Plane für die Farbe, mit 
                           der gefüllt werden soll.
                 fg_bp_2   Bitwert der zweiten Plane (nur niedrige 
                           oder mittlere Auflösung).
                 fg_bp_3   Bitwert der dritten Plane (nur niedrige 
                           Auflösung).
                 fg_bp_4   Bitwert der vierten Plane (nur niedrige 
                           Auflösung).
                 patptr    Zeiger auf ein Feld mit 16 Bit 
                           Linienmustern.
                 patmsk    Anzahl Linienmuster - 1. In Abhängigkeit 
                           von der y-Koordinate wird nun aus dem Feld 
                           mit den Linienmustern eines ausgewählt. Der 
                           Index des verwendeten Linienmusters läßt 
                           sich durch (y mod (patmsk + 1)) berechnen. 
                           Durch die Angabe mehrerer Linienmuster und 
                           mehrmaliges Aufrufen dieser Funktion für 
                           aufeinanderfolgende Zeilen lassen sich 
                           leicht auch komplexe Muster zeichnen.
                 wrt_mode  Schreibmodes, es sind die folgenden Modie 
                           möglich:
                            REPLACE 0  Replace
                            TRANS 1    Transparent (OR)
                            XOR 2      Inverse (XOR)
                            INVERS 3   Inverse Transparent (XOR mit 
                                       not(LN_MASK))
                 clip      1 wenn Clipping gewünscht wird, 0 sonst.
                 xmn_clip  X-Koordinate der linken oberen Ecke des 
                           Clipping Bereichs, wenn Clipping 
                           eingeschaltet ist.
                 ymn_clip  Y-Koordinate der linken oberen Ecke des 
                           Clipping Bereichs, wenn Clipping 
                           eingeschaltet ist.
                 xmx_clip  X-Koordinate der rechten unteren Ecke des 
                           Clipping Bereichs, wenn Clipping 
                           eingeschaltet ist.
                 ymx_clip  Y-Koordinate der rechten unteren Ecke des 
                           Clipping Bereichs, wenn Clipping 
                           eingeschaltet ist.

                Das Binding von TC übergibt Linienmuster, Schreibmodus 
                und Farbe nicht an die filled_polygon() Funktion, 
                sondern benutzt separate Funktionen set_fg_bp(), 
                set_wrt_mode(), set_pattern() und set_clipping() zum 
                Setzen der Parameter in dem Line-A Parameterblock.

 Ergebnis:      Die Funktion liefert keinen Returnwert.

 Verfügbar:     Alle TOS-Versionen.

 Querverweis:   Binding   Horizontal line   Filled rectangle