HomeVDIAttributfunktionenAuskunftsfunktionen

7.5 Ausgabefunktionen

Diese Bibliothek enthält eine Vielzahl von Funktionen, um Ausgaben unterschiedlicher Art auf einem Ausgabegerät vornehmen zu können. Insgesamt stehen die folgenden Routinen zur Verfügung:

v_arc Kreisbogen zeichnen.
v_bar Ausgefülltes Rechteck zeichnen.
v_bez Bezier-Spline zeichnen.
v_bez_fill Bezier-Spline zeichnen und füllen.
v_cellarray Farbauswahltabelle darstellen.
v_circle Ausgefüllten Kreis zeichnen.
v_contourfill Fläche bis zu bestimmten Begrenzungen ausfüllen.
v_ellarc Ellipsenbogen zeichnen.
v_ellipse Ausgefüllte Ellipse zeichnen.
v_ellpie Ausgefülltes Ellipsensegment zeichnen.
v_etext Text grafisch ausgeben.
v_fillarea Angegebene Fläche ausfüllen.
v_ftext Text mittels Vektor-Font ausgeben.
• v_ftext16 z.Zt. keine Informationen bekannt.
v_ftext_offset Text mittels Vektor-Font ausgeben.
v_ftext_offset16 z.Zt. keine Informationen bekannt.
v_gtext Text grafisch ausgeben.
v_justified Ausgerichteten Text ausgeben.
• v_mono_ftext z.Zt. keine Informationen bekannt.
v_pieslice Ausgefülltes Kreissegment zeichnen.
v_pline Linienzug zeichnen.
v_pmarker Markierung zeichnen.
v_rbox Abgerundetes Rechteck zeichnen.
v_rfbox Ausgefülltes, abgerundetes Rechteck zeichnen.
vr_recfl Rechteck ausfüllen.

Hinweis: Über die Attributfunktionen ist es darüber hinaus möglich, die Art der Ausgabe weiter zu spezifizieren.

Querverweis: Workstations des VDI   Style-Guidelines

7.5.1 vr_recfl

Name: »Fill Rectangle« - füllt ein Rechteck.
VDI-Nummer: 114
Deklaration: void vr_recfl ( int16_t handle, int16_t *pxyarray );
Beschreibung: Die Funktion füllt eine rechteckige Fläche aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des Eckpunktes
pxyarray[2] x-Koordinate
pxyarray[3] y-Koordinate der diagonal gegenüber liegenden Ecke


Hinweis: Die Fülltyp-Attribute werden beim Zeichnen beachtet. Hiervon ausgenommen ist lediglich die Einstellung der Umrahmung.

Die Funktion ist nicht auf allen Ausgabegeräten verfügbar; daher sollte im Zweifelsfall besser auf die v_bar Routine zurückgegriffen werden.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers.
Gruppe: Ausgabefunktionen
Querverweis: Binding   v_fillarea   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.2 Bindings für vr_recfl

C: void vr_recfl ( int16_t handle, int16_t *pxyarray );
Umsetzung:
void vr_recfl (int16_t handle, int16_t *pxyarray)
{
   ptsin[0..3] = pxyarray[0..3];

   contrl[0] = 114;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 114 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0..3] pxyarray[0..3]

7.5.3 v_arc

Name: »Arc« - zeichnet einen Kreisbogen.
VDI-Nummer: 11 (GDP 2)
Deklaration: void v_arc ( int16_t handle, int16_t x, int16_t y, int16_t radius, int16_t begang, int16_t endang );
Beschreibung: Die Funktion zeichnet einen Kreisbogen. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate des Mittelpunktes
radius Radius bzgl. der x-Achse
begang Startwinkel
endang Endwinkel


Hinweis: Die Linien-Attribute, der Schreibmodus sowie die tatsächliche Pixelgröße werden beim Zeichnen berücksichtigt. Die Angabe des Radius bezieht sich auf die x-Achse. Der Winkel wird in 1/10 Grad, und entgegen dem Uhrzeigersinn angegeben:
             900
            |
            |
            |
   ---------+---------
1800        |        0
            |
            |
             2700
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk() or v_opnwk().
Gruppe: Ausgabefunktionen
Querverweis: Binding   vs_color   vswr_mode   vsl_type   vsl_width   vsl_color   vsl_ends   vsl_udsty

7.5.4 Bindings für v_arc

C: void v_arc ( int16_t handle, int16_t x, int16_t y, int16_t radius, int16_t begang, int16_t endang );
Umsetzung:
void v_arc (int16_t handle, int16_t x, int16_t y, int16_t radius,
            int16_t begang, int16_t endang)
{
   ptsin[0] = x;
   ptsin[1] = y;
   ptsin[2] = ptsin[3] = ptsin[4] = ptsin[5] = 0;
   ptsin[6] = radius;
   ptsin[7] = 0;

   intin[0] = begang;
   intin[1] = endgang;

   contrl[0] = 11;
   contrl[1] = 4;
   contrl[3] = 2;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 4 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 2 GDP-Nummer
contrl+12 contrl[6] handle
intin intin[0] begang
intin+2 intin[1] endgang
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2..5] 0
ptsin+12 ptsin[6] radius
ptsin+14 ptsin[7] 0

7.5.5 v_bar

Name: »Bar« - zeichnet ein ausgefülltes Rechteck.
VDI-Nummer: 11 (GDP 1)
Deklaration: void v_bar ( int16_t handle, int16_t *pxyarray );
Beschreibung: Die Funktion zeichnet ein ausgefülltes Rechteck. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des Eckpunktes
pxyarray[2] x-Koordinate
pxyarray[3] y-Koordinate der diagonal gegenüber liegenden Ecke


Hinweis: Die Funktion kann z.B. für das Zeichnen von Balkendiagrammen benutzt werden. Die Fülltyp-Attribute sowie der Schreibmodus werden beachtet.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk() or v_opnwk().
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.6 Bindings für v_bar

C: void v_bar ( int16_t handle, int16_t *pxyarray );
Umsetzung:
void v_bar (int16_t handle, int16_t *pxyarray)
{
   ptsin[0..3] = pxyarray[0..3];
   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 1;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 1 GDP-Nummer
contrl+12 contrl[6] handle
ptsin ptsin[0..3] pxyarray[0..3]

7.5.7 v_bez

Name: »Output Bezier« - Bezier-Spline zeichnen.
VDI-Nummer: 6 (Unterfunktion 13)
Deklaration: void v_bez ( int16_t handle, int16_t count, int16_t *xyarr, int8_t *bezarr, int16_t *extent, int16_t *totpts, int16_t *totmoves );
Beschreibung: Die Funktion zeichnet einen Bezier-Spline. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Stützstellen
xyarr Koordinaten
bezarr Punkttypen als Bitvektor
Bit-0 = Startpunkt eines 4-Punkte Beziersegments (2 Ankerpunkte und zwei Richtungspunkte).
Bit-1 = 'Jump point'. Dieser Punkt und der vorhergehende werden nicht verbunden. Nützlich um Enklaven oder Exklaven zu zeichnen.
Bit-2..7 = undefiniert
extent Koordinaten des umschließenden Rechteckes
totpts Anzahl der Punkte im Polygon
totmoves Anzahl der Züge im Polygon


Hinweis: Der Endpunkt eines Beziersegments kann auch der Startpunkt des nächsten Beziers sein - er kann aber kein 'jump point' sein. Ist im bezarr Bit 0 gelöscht, verhält sich die Bezierfunktion wie v_pline mit der Erweiterung, über den 'jump point' Enklaven oder Exklaven zeichnen zu können.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und ab NVDI 2.10
Gruppe: Ausgabefunktionen
Querverweis: Binding   v_bez_on   v_bez_off   v_bez_fill   v_bez_qual   v_set_app_buff

7.5.8 Bindings für v_bez

C: void v_bez ( int16_t handle, int16_t count, int16_t *xyarr, int8_t *bezarr, int16_t *extent, int16_t *totpts, int16_t *totmoves );
Umsetzung:
void v_bez (int16_t handle, int16_t count, int16_t *xyarr,
            int8_t *bezarr, int16_t *extent, int16_t *totpts,
            int16_t *totmoves)
{
   ptsin[0..2n-1] = xyarr[0..2n-1];
   intin[0..(n+1)/2-1] = bezarr[0..n-1]

   contrl[0] = 6;
   contrl[1] = n;
   contrl[3] = (n+1)/2;
   contrl[5] = 13;
   contrl[6] = handle;

   vdi ();

   *totpts   = intout[0];
   *totmoves = intout[1];
   extent[0..3] = ptsout[0..3];
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 6 # Opcode der Funktion
contrl+2 contrl[1] n # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] (n+1)/2 # Einträge in intin
contrl+8 contrl[4] 6 # Einträge in intout
contrl+10 contrl[5] 13 Unterfunktion
contrl+12 contrl[6] handle
intin intin[0..(n+1)/2-1)] bezarr[0..n-1]
ptsin ptsin[0..2n-1] xyarr[0..2n-1]
intout intout[0] totpts
intout+2 intout[1] totmoves
intout+4 intout[2..5] reserviert
ptsout ptsout[0..3] extent[0..3]


Hinweis: Die im Array bezarr übergebenen Punkttypen müssen vom C-Binding vertauscht werden, da diese Funktion leider diesbezüglich kompatibel zum PC-GEM ist. bezarr[0] wird ins Low-Byte von intin[0] und bezarr[1] ins High-Byte von intin[0] geschrieben.

7.5.9 v_bez_fill

Name: »Output filled Bezier« - Bezier-Spline zeichnen und füllen.
VDI-Nummer: 9 (Unterfunktion 13)
Deklaration: void v_bez_fill ( int16_t handle, int16_t count, int16_t *xyarr, int8_t *bezarr, int16_t *extent, int16_t *totpts, int16_t *totmoves );
Beschreibung: Die Funktion zeichnet einen Bezier-Spline und füllt diesen anschließend aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Stützstellen
xyarr[0..2n-1] Koordinaten
bezarr Punkttypen als Bitvektor
Bit-0 Startpunkt eines 4-Punkte Beziersegments (2 Anker- und zwei Richtungspunkte)
Bit-1 'Jump point'. Dieser Punkt und der vorhergehende werden nicht verbunden. Dies ist nützlich um Enklaven, oder Exklaven zu zeichnen.
Bit-2..7 undefiniert.
extent[0..3] Koordinaten des umschließenden Rechtecks
totpts Anzahl der Punkte im Polygon
totmoves Anzahl der Züge im Polygon


Hinweis: Ist im bezarr Bit-0 gelöscht, verhält sich die Funktion wie v_fillarea mit der Erweiterung, über den 'Jump point' Enklaven oder Exklaven zeichnen zu können.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und ab NVDI 2.10
Gruppe: Ausgabefunktionen
Querverweis: Binding   v_bez_on   v_bez_off   v_bez   v_bez_qual   v_set_app_buff   v_fillarea

7.5.10 Bindings für v_bez_fill

C: void v_bez_fill ( int16_t handle, int16_t count, int16_t *xyarr, int8_t *bezarr, int16_t *extent, int16_t *totpts, int16_t *totmoves );
Umsetzung:
void v_bez_fill (int16_t handle, int16_t count, int16_t *xyarr,
                 int8_t *bezarr, int16_t *extent,
                 int16_t *totpts, int16_t *totmoves)
{
   ptsin[0..2n-1] = xyarr[0..2n-1];
   intin[0..(n+1)/2-1] = bezarr[0..n-1];

   contrl[0] = 9;
   contrl[1] = n;
   contrl[3] = (n+1)/2;
   contrl[5] = 13;
   contrl[6] = handle;

   vdi ();

   *totpts   = intout[0];
   *totmoves = intout[1];
   extent[0..3] = ptsout[0..3];
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 9 # Opcode der Funktion
contrl+2 contrl[1] n # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] (n+1)/2 # Einträge in intin
contrl+8 contrl[4] 6 # Einträge in intout
contrl+10 contrl[5] 13 # Unterfunktion
contrl+12 contrl[6] handle
intin intin[0..(n+1)/2-1] bezarr[0..n-1]
ptsin ptsin[0..2n-1] xyarr[0..2n-1]
intout intout[0] totpts
intout+2 intout[1] totmoves
intout+4 intout[2..5] reserviert
ptsout ptsout[0..3] extent[0..3]


Hinweis: Die im Array bezarr übergebenen Punkttypen müssen vom C-Binding vertauscht werden, da diese Funktion leider diesbezüglich kompatibel zum PC-GEM ist. bezarr[0] wird ins Low-Byte von intin[0] und bezarr[1] ins High-Byte von intin[0] geschrieben.

7.5.11 v_cellarray

Name: »Cell Array« - Farbaufbau des Bildschirms in Koordinaten.
VDI-Nummer: 10
Deklaration: void v_cellarray ( int16_t handle, int16_t *pxyarray, int16_t row_length, int16_t el_used, int16_t num_rows, int16_t wrt_mode, int16_t *colarray );
Beschreibung: Die Funktion ermöglicht es, den Farbaufbau des Bildschirms nicht von den gezeichneten Objekten abhängig zu machen, sondern von den Koordinaten des Bildschirms. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
pxyarray Koordinaten des Begrenzungsrechtecks
row_length Zeilenlänge im Farbindex-Array
el_used Anzahl der Spalten
num_rows Anzahl der Zeilen
wrt_mode Schreibmodus
colarray Farbindexarray, enthält die Farbinformation für das ganze Rechteck (zeilenweise)


Hinweis: Das Ausgabegerät wird in eine Anzahl von Zellen unterteilt, wobei jeder Zelle eine Farbe zugeordnet wird. Erfolgt nun eine Ausgabe in der entsprechenden Zelle, so erfolgt diese in der, der Zelle zugeordneten Farbe. Die Funktion ist nicht auf allen Ausgabegeräten verfügbar.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Not supported by any current drivers.

This function is not guaranteed available in any driver and should therefore be avoided unless you are sure the driver you are utilizing understands it.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode

7.5.12 Bindings für v_cellarray

C: void v_cellarray ( int16_t handle, int16_t *pxyarray, int16_t row_length, int16_t el_used, int16_t num_rows, int16_t wrt_mode, int16_t *colarray );
Umsetzung:
void v_cellarray (int16_t handle, int16_t *pxyarray,
                  int16_t row_length, int16_t el_used,
                  int16_t num_rows,  int16_t wrt_mode,
                  int16_t *colarray)
{
   int16_t n;

   n = row_length * num_rows;

   intin[0..n-1] = colarray[0..n-1];
   ptsin[0..3] = pxyarray[0..3];

   contrl[0]  = 10;
   contrl[1]  = 2;
   contrl[3]  = n;
   contrl[6]  = handle;
   contrl[7]  = row_length;
   contrl[8]  = el_used;
   contrl[9]  = num_rows;
   contrl[10] = wrt_mode;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 10 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
contrl+14 contrl[7] row_length
contrl+16 contrl[8] el_used
contrl+18 contrl[9] num_rows
contrl+20 contrl[10] wrt_mode
intin intin[0..n-1] colarray[0..n-1]
ptsin ptsin[0..3] pxyarray[0..3]


Hinweis: n ist hier die #Zeilen * #Spalten der Zellenaufteilung.

7.5.13 v_circle

Name: »Circle« - zeichnet eine Kreisfläche.
VDI-Nummer: 11 (GDP 4)
Deklaration: void v_circle ( int16_t handle, int16_t x, int16_t y, int16_t radius );
Beschreibung: Die Funktion zeichnet eine Kreisfläche. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für den Mittelpunkt
radius Radius bzgl. der x-Achse


Hinweis: Die Fülltyp-Attribute, der Schreibmodus sowie das Pixelgrößenverhältnis werden beachtet.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk() or v_opnwk().
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.14 Bindings für v_circle

C: void v_circle ( int16_t handle, int16_t x, int16_t y, int16_t radius );
Umsetzung:
void v_circle (int16_t handle, int16_t x, int16_t y,
               int16_t radius)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = 0;
   ptsin[3]  = 0;
   ptsin[4]  = radius;
   ptsin[5]  = 0;

   contrl[0] = 11;
   contrl[1] = 3;
   contrl[3] = 0;
   contrl[5] = 4;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 3 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 4 GDP-Nummer
contrl+12 contrl[6] handle
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2..3] 0
ptsin+8 ptsin[4] radius
ptsin+10 ptsin[5] 0

7.5.15 v_contourfill

Name: »Countour fill« - füllt eine Fläche.
VDI-Nummer: 103
Deklaration: void v_contourfill ( int16_t handle, int16_t x, int16_t y, int16_t index );
Beschreibung: Die Funktion füllt, abhängig vom Startpunkt, eine bestimmte Fläche aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate des Startpunktes
index Farbindex


Hinweis: Die Füllfläche wird durch den Bildschirmrand, oder durch eine definierte Farbe begrenzt.

Die aktuellen Fülltyp-Attribute werden beim Zeichnen beachtet. Ist der Parameter index negativ, so wird gefüllt, bis ein andersfarbiges Pixel angetroffen wird.
Ergebnis: Die Funktion liefert kein direktes Funktionsergebnis.
Verfügbar: Die Funktion ist nicht auf allen Ausgabegeräten verfügbar, deshalb sollte per vq_extnd nachgefragt werden.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.16 Bindings für v_contourfill

C: void v_contourfill ( int16_t handle, int16_t x, int16_t y, int16_t index );
Umsetzung:
void v_contourfill (int16_t handle, int16_t x, int16_t y,
                    int16_t index)
{
   intin[0]  = index;
   ptsin[0]  = x;
   ptsin[1]  = y;
   contrl[0] = 103;
   contrl[1] = 1;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 103 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] index
ptsin ptsin[0] x
ptsin+2 ptsin[1] y

7.5.17 v_ellarc

Name: »Elliptical Arc« - zeichnet einen Ellipsenbogen.
VDI-Nummer: 11 (GDP 6)
Deklaration: void v_ellarc ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius, int16_t begang, int16_t endang );
Beschreibung: Die Funktion zeichnet einen Ausschnitt eines Ellipsenbogens. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für den Mittelpunkt
xradius Radius in x-Achse
yradius Radius in y-Achse
begang Startwinkel
endang Endwinkel


Hinweis: Die Linien-Attribute und der Schreibmodus werden beim Zeichnen beachtet, das Pixelgrößenverhältnis jedoch ignoriert. Der Winkel wird in 1/10 Grad und entgegen dem Uhrzeigersinn angegeben:
             900
            |
            |
            |
   ---------+---------
1800        |        0
            |
            |
             2700
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vs_color   vswr_mode   vsl_type   vsl_width   vsl_color   vsl_ends   vsl_udsty

7.5.18 Bindings für v_ellarc

C: void v_ellarc ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius, int16_t begang, int16_t endang );
Umsetzung:
void v_ellarc (int16_t handle, int16_t x, int16_t y,
               int16_t xradius, int16_t yradius, int16_t begang,
               int16_t endang)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = xradius;
   ptsin[3]  = yradius;

   intin[0] = begang;
   intin[1] = endang;

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 2;
   contrl[5] = 6;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 6 GDP-Nummer
contrl+12 contrl[6] handle
intin intin[0] begang
intin+2 intin[1] endang
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2] xradius
ptsin+6 ptsin[3] yradius

7.5.19 v_ellipse

Name: »Ellipse« - zeichnet eine Ellipsenfläche.
VDI-Nummer: 11 (GDP 5)
Deklaration: void v_ellipse ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius );
Beschreibung: Die Funktion zeichnet eine Ellipsenfläche. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für den Mittelpunkt
xradius Radius in x-Richtung
yradius Radius in y-Richtung


Hinweis: Die Fülltyp-Attribute und der Schreibmodus werden berücksichtigt, das Pixelgrößenverhältnis jedoch ignoriert.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.20 Bindings für v_ellipse

C: void v_ellipse ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius );
Umsetzung:
void v_ellipse (int16_t handle, int16_t x, int16_t y, int16_t xradius,
                int16_t yradius)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = xradius;
   ptsin[3]  = yradius;

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 5;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 5 GDP-Nummer
contrl+12 contrl[6] handle
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2] xradius
ptsin+6 ptsin[3] yradius

7.5.21 v_ellpie

Name: »Elliptical Pie« - zeichnet eine Ellipsenbogenfläche.
VDI-Nummer: 11 (GDP 7)
Deklaration: void v_ellpie ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius, int16_t begang, int16_t endang );
Beschreibung: Die Funktion zeichnet einen Ausschnitt einer Ellipsenfläche, wie er auch für Tortengrafiken benutzt wird. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für den Mittelpunkt
xradius Radius in x-Richtung
yradius Radius in y-Richtung
begang Startwinkel
endang Endwinkel


Hinweis: Die Fülltyp-Attribute und der Schreibmodus werden berücksichtigt; das Pixelgrößenverhältnis wird ignoriert. Der Winkel wird in 1/10 Grad und entgegen dem Uhrzeigersinn angegeben:
             900
            |
            |
            |
   ---------+---------
1800        |        0
            |
            |
             2700
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.22 Bindings für v_ellpie

C: void v_ellpie ( int16_t handle, int16_t x, int16_t y, int16_t xradius, int16_t yradius, int16_t begang, int16_t endang );
Umsetzung:
void v_ellpie (int16_t handle, int16_t x, int16_t y,
               int16_t xradius, int16_t yradius, int16_t begang,
               int16_t endang)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = xradius;
   ptsin[3]  = yradius;

   intin[0] = begang;
   intin[1] = endang;

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 2;
   contrl[5] = 7;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 7 GDP-Nummer
contrl+12 contrl[6] handle
intin intin[0] begang
intin+2 intin[1] endang
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2] xradius
ptsin+6 ptsin[3] yradius

7.5.23 v_etext

Name: »?« - Text grafisch ausgaben
VDI-Nummer: 11 (GDP 11)
Deklaration: void v_etext( int16_t handle, int16_t x, int16_t y, int16_t *string, int16_t *offsets);
Beschreibung: This function writes each character of a text string relative to the specified starting position. It is typically used to override the driver's default method of justification. This function applies to printers and plotters only.
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Punkte
x x-coordinate of starting position
y y-coordinate of starting position
string Address of null-terminated text string
offsets Address of int16_t array of position offsets
Each offset is an x,y pair of signed integers that indicate the position of the next character in the string relative to the starting position. The first offset pair affects the position of the first character in the string. Some driver ignore the y component of each pair, in which case y is assumed to equal zero.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: GEM/3 Release 3.1
Gruppe: Ausgabefunktionen
Querverweis: Binding

7.5.24 Bindings für v_etext

C: void v_etext( int16_t handle, int16_t x, int16_t y, int16_t *string, int16_t *offsets);
Umsetzung:
void v_etext( int16_t handle, int16_t x, int16_t y,
              int16_t *string, int16_t *offsets)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = offsets[0];
   ptsin[3]  = offsets[2];
   .
   .
   ptsin[2n+1]  = offsets[2n-1];

   i = 0;
   while (intin[i++] = *string++)
      ;

   contrl[0] = 11;
   contrl[1] = length og string + 1 ;
   contrl[3] = lenght of string;
   contrl[4] = 11;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] n + 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 11
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2..2n+1] offsets[0..2n-1]

7.5.25 v_fillarea

Name: »Filled Area« - füllt eine Fläche.
VDI-Nummer: 9
Deklaration: void v_fillarea ( int16_t handle, int16_t count, int16_t *pxyarray );
Beschreibung: Die Funktion füllt eine Fläche aus, die von einem Polygonzug umgeben ist. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Punkte
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des ersten Punktes
...  
...  
pxyarray[2*count-2] x-Koordinate
pxyarray[2*count-1] y-Koordinate des letzten Punktes


Hinweis: Sollte das Ausgabegerät keine Möglichkeit zum Ausfüllen bieten, wird die Fläche nur mit der aktuellen Füllfarbe umgeben. Es müssen mindestens drei Koordinatenpaare übergeben werden. Offene Polygonzüge werden von der Funktion automatisch geschlossen. Ein einzelnes Koordinatenpaar wird nur dann als Punkt gezeichnet, wenn die automatische Umrandung der Füllfläche per vsf_perimeter eingeschaltet worden ist.

Die aktuellen Fülltyp-Attribute werden beachtet.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.26 Bindings für v_fillarea

C: void v_fillarea ( int16_t handle, int16_t count, int16_t *pxyarray );
Umsetzung:
void v_fillarea (int16_t handle, int16_t count,
                 int16_t *pxyarray)
{
   ptsin[0..2*count-1]  = pxyarray[0..2*count-1];
   contrl[0] = 9;
   contrl[1] = count;
   contrl[3] = 0;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 9 # Opcode der Funktion
contrl+2 contrl[1] n # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0..2n-1] pxyarray[0..2n-1]


Hinweis: Dabei gilt n = count.

7.5.27 v_ftext

Name: »Text« - gibt einen Text per Vektorfont aus.
VDI-Nummer: 241
Deklaration: void v_ftext ( int16_t handle, int16_t x, int16_t y, int8_t *string );
Beschreibung: Die Funktion gibt einen Text auf einer Workstation aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate des Textes
string Adresse der Zeichenkette


Hinweis: Die Funktion beachtet im Gegensatz zu v_gtext auch die eingestellten Kerning-Attribute, und rechnet intern mit einer Genauigkeit von 1/65536 Pixeln, wodurch eine bessere Positionierung der Zeichen gewährleistet ist.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: FSMGDOS, ab SpeedoGDOS 4.00 und ab NVDI 3.00
Gruppe: Ausgabefunktionen
Querverweis: Binding   v_gtext   v_ftext_offset   SpeedoGDOS   NVDI   fix31

7.5.28 Bindings für v_ftext

C: void v_ftext ( int16_t handle, int16_t x, int16_t y, int8_t *string );
Umsetzung:
void v_ftext (int16_t handle, int16_t x, int16_t y,
              int8_t *string)
{
   int16_t i;

   ptsin[0]  = x;
   ptsin[1]  = y;

   i = 0;
   while (intin[i++] = *string++)
      ;

   contrl[0] = 241;
   contrl[1] = 1;
   contrl[3] = strlen(string);
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 241 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]
ptsin ptsin[0] x
ptsin+2 ptsin[1] y


Hinweis: Dabei gilt n = strlen (string);

7.5.29 v_ftext_offset

Name: »Outline Font Text« - gibt einen Text aus.
VDI-Nummer: 241
Deklaration: void v_ftext_offset ( int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t *offset );
Beschreibung: Die Funktion gibt eine Zeichenkette auf einer Workstation aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für die Textausgabe
string Adresse der Zeichenkette
offset[0] x-Offset
offset[1] y-Offset des ersten Zeichens
...  
...  
offset[2n-2] x-Offset des letzten Zeichens
offset[2n-1] y-Offset des letzten Zeichens


Der Parameter offset erlaubt es, eigene Offsets anstelle der vom System berechneten Zeichen-Werte zu benutzen; dies ermöglicht eine wesentlich größere Kontrolle für das Setzen der Zeichen auf dem Ausgabegerät.

Hinweis: Die Text-Attribute sowie die Einstellungen des Kernings werden beachtet.
Ergebnis: Die Funktion liefert kein Ergebnis zurück.
Verfügbar: ab SpeedoGDOS 4.00 und NVDI 3.00
Gruppe: Ausgabefunktionen
Querverweis: Binding   v_gtext   v_ftext   SpeedoGDOS   NVDI

7.5.30 Bindings für v_ftext_offset

C: void v_ftext_offset ( int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t *offset );
Umsetzung:
void v_ftext_offset (int16_t handle, int16_t x, int16_t y,
                     int8_t *string, int16_t *offset)
{
   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = offset[0];
   ptsin[3]  = offset[1];
   ptsin[4..2*n+1] = offset[2..(2*n)-1]

   intin[0..n-1] = string[0..n-1];

   contrl[0] = 241;
   contrl[1] = 1+n;
   contrl[3] = n;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 241 # Opcode der Funktion
contrl+2 contrl[1] 1+n # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2] offset[0] # x-Offset erstes Zeichen
ptsin+6 ptsin[3] offset[1] # y-Offset erstes Zeichen
ptsin+8 ptsin[4..2n+1] offset[2..2n-1] # dto. für Rest


Hinweis: Dabei gilt n = strlen(string);

7.5.31 v_gtext

Name: »Graphic Text« - gibt einen Text aus.
VDI-Nummer: 8
Deklaration: void v_gtext ( int16_t handle, int16_t x, int16_t y, int8_t *string );
Beschreibung: Die Funktion gibt einen Text auf einer Workstation aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate des Textes
string Adresse der Zeichenkette


Hinweis: Die Geschwindigkeit der Ausgabe läßt sich beschleunigen, wenn folgende Punkte beachtet werden:
  • auf Bytegrenzen justiert ausgeben.
  • möglichst kein Clipping benutzen.
  • bei nichtproportionalen, acht Pixel breiten Zeichensätzen im Replace-Modus und ohne Clipping, sonst im Transparent-Modus ausgeben.


Die Text-Attribute und der Schreibmodus werden beachtet. Ist ein Vektorfont eingestellt, so wird weder Pair- noch Track-Kerning beachtet; daher sollte ggfs. besser auf die v_ftext-Funktion zurückgegriffen werden. Die Zeichenpositionierung erfolgt außerdem pixelweise, d.h. vqt_width() liefert hierfür die passenden Schrittgrößen.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vst_alignment   vst_height   vst_point   vst_rotation   vst_font   vst_color   vst_effects   v_ftext

7.5.32 Bindings für v_gtext

C: void v_gtext ( int16_t handle, int16_t x, int16_t y, int8_t *string );
Umsetzung:
void v_gtext (int16_t handle, int16_t x, int16_t y,
              int8_t *string)
{
   int16_t i;

   ptsin[0]  = x;
   ptsin[1]  = y;

   i = 0;
   while (intin[i++] = *string++)
      ;

   contrl[0] = 8;
   contrl[1] = 1;
   contrl[3] = -i;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 8 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]
ptsin ptsin[0] x
ptsin+2 ptsin[1] y

7.5.33 v_justified

Name: »Justified Graphics Text« - Positionierter Graphiktext.
VDI-Nummer: 11 (GDP 10)
Deklaration: void v_justified ( int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t length, int16_t word_space, int16_t char_space, [int16_t *char_width] );
Beschreibung: Die Funktion gibt einen String auf einer Workstation aus. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate des Punktes für die Textausrichtung
string Adresse der Zeichenkette
length Länge des Textes bzgl. der x-Achse
word_space Wortzwischenräume
  0 = keine Dehnung der Zwischenräume
<>0 = Dehnung der Zwischenräume
char_space Zeichenzwischenräume
  0 = keine Dehnung der Zwischenräume
<>0 = Dehnung der Zwischenräume


Der Text wird links und rechts bezogen auf den Startpunkt und die Länge justiert. Um den Text auf die erforderliche Länge zu bringen, hat man die Wahl zwischen Dehnung der Wort- und/oder Zeichenzwischenräume.

Hinweis: Die Text-Attribute und der Schreibmodus werden berücksichtigt. Im Zeichensatz fehlende Zeichen werden durch ein Ersatzsymbol (z.B. das Fragezeichen) ersetzt.

Bei Vektorfonts bezieht sich die Längenangabe auf die Summation der Zeichenbreiten - Überhänge nach links und rechts werden nicht berücksichtigt.

Ab GEM/3 wurde die Funktion erheblich verändert. Der Parameter char_width wurde neu aufgenommen. Er gibt die Anzahl der Pixel jedes Buchstabens der ausgegebenen Zeichenkette zurück. Dabei habe sich auch die Parameter word_space und char_space wie folgt geändert:
Parameter Bedeutung
   
word_space Wortzwischenräume
0x0000 = keine Dehnung der Zwischenräume, keine Ausgabeinformationen
0x0001 = Dehnung der Zwischenräume, keine Ausgabeinformationen
0x8000 = keine Dehnung der Zwischenräume, Ausgabeinformationen (char_space) werden zurückgegeben
0x8001 = Dehnung der Zwischenräume, Ausgabeinformationen (char_space) werden zurückgegeben
char_space Zeichenzwischenräume
0x0000 = keine Dehnung der Zwischenräume
0x0001 = Dehnung der Zwischenräume
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vst_alignment   vst_height   vst_point   vst_rotation   vst_font   vst_color   vst_effects

7.5.34 Bindings für v_justified

C: void v_justified ( int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t length, int16_t word_space, int16_t char_space, [int16_t *char_width] );
Umsetzung:
void v_justified (int16_t handle, int16_t x, int16_t y,
                  int8_t *string, int16_t length,
                  int16_t word_space, int16_t char_space,
                  [int16_t *char_width] )
{
   int16_t *tmp;

   ptsin[0]  = x;
   ptsin[1]  = y;
   ptsin[2]  = length;
   ptsin[3]  = 0;

   intin[0] = word_space;
   intin[1] = char_space;

   tmp = &(intin[2]);
   while (*tmp++ = *string++)
      ;

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = (int16_t) (tmp-&(intin))-1;

   contrl[4] = 0;       /* if word_space equale 0x0000 or 0x0001  */
   contrl[4] = n;       /* if word_space equale 0x8000 or 0x8001  */

   contrl[5] = 10;
   contrl[6] = handle;

   vdi ();

   char_with[0..n-1] = intout[0..n-1];  /* if word_space equale 0x8000 or 0x8001  */

}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n+2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout;
            if word_space 0x0000 or 0x0001
contrl+8 contrl[4] n # Einträge in intout;
            if word_space 0x8000 or 0x8001
contrl+10 contrl[5] 10 GDP-Nummer
contrl+12 contrl[6] handle
intin intin[0] word_space
intin+2 intin[1] char_space
intin+4 intin[2..n+1] string[0..n-1]
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2] length
ptsin+6 ptsin[3] 0
intout intout[0..n-1] char_with[0..n-1]
            if word_space 0x8000 or 0x8001

7.5.35 v_pieslice

Name: »Pie-Slice« - zeichnet ein "Tortenstück".
VDI-Nummer: 11 (GDP 3)
Deklaration: void v_pieslice ( int16_t handle, int16_t x, int16_t y, int16_t radius, int16_t begang, int16_t endang );
Beschreibung: Die Funktion zeichnet einen Ausschnitt einer Kreisfläche, wie er z.B. in Tortengrafiken benutzt wird. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
x x-Koordinate
y y-Koordinate für den Mittelpunkt
radius Radius bzgl. der x-Achse
begang Startwinkel
endang Endwinkel


Hinweis: Die Fülltyp-Attribute, der Schreibmodus sowie das Pixelgrößenverhältnis werden beachtet. Der Winkel wird in 1/10 Grad und entgegen dem Uhrzeigersinn angegeben:
             900
            |
            |
            |
   ---------+---------
1800        |        0
            |
            |
             2700
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter

7.5.36 Bindings für v_pieslice

C: void v_pieslice ( int16_t handle, int16_t x, int16_t y, int16_t radius, int16_t begang, int16_t endang );
Umsetzung:
void v_pieslice (int16_t handle, int16_t x, int16_t y,
                 int16_t radius, int16_t begang, int16_t endang)
{
   ptsin[0] = x;
   ptsin[1] = y;
   ptsin[2] = ptsin[3] = ptsin[4] = ptsin[5] = 0;
   ptsin[6] = radius;
   ptsin[7] = 0;

   intin[0] = begang;
   intin[1] = endang;

   contrl[0] = 11;
   contrl[1] = 4;
   contrl[3] = 2;
   contrl[5] = 3;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 4 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3 GDP-Nummer
contrl+12 contrl[6] handle
intin intin[0] begang
intin+2 intin[1] endang
ptsin ptsin[0] x
ptsin+2 ptsin[1] y
ptsin+4 ptsin[2..5] 0
ptsin+12 ptsin[6] radius
ptsin+14 ptsin[7] 0

7.5.37 v_pline

Name: »Polyline« - Linienzug zeichnen
VDI-Nummer: 6
Deklaration: void v_pline ( int16_t handle, int16_t count, int16_t *pxyarray );
Beschreibung: Die Funktion zeichnet einen Polygonzug. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Punkte
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des ersten Punktes
...  
...  
pxyarray[2*count-2] x-Koordinate
pxyarray[2*count-1] y-Koordinate des letzten Punktes


Die Linienattribute und die Einstellung des Schreibmodus werden beim Zeichnen beachtet.

Hinweis: Der Startpunkt wird durch das erste Koordinatenpaar bestimmt. Danach werden alle Punkte durch eine Linie verbunden. Einzelne Punkte können durch ein einzelnes Koordinatenpaar nicht gezeichnet werden, jedoch durch eine Linie der Länge Null, d.h. zwei gleiche Koordinatenpaare.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vs_color   vswr_mode   vsl_type   vsl_width   vsl_color   vsl_ends   vsl_udsty

7.5.38 Bindings für v_pline

C: void v_pline ( int16_t handle, int16_t count, int16_t *pxyarray );
Umsetzung:
void v_pline (int16_t handle, int16_t count, int16_t *pxyarray)
{
   ptsin[0..2*count-1] = pxyarray[0..2*count-1];

   contrl[0] = 6;
   contrl[1] = count;
   contrl[3] = 0;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 6 # Opcode der Funktion
contrl+2 contrl[1] count # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0..2n-1] pxyarray[0..2n-1]


Hinweis: Dabei gilt n = count.

7.5.39 v_pmarker

Name: »Polymarker« - zeichnet Marker.
VDI-Nummer: 7
Deklaration: void v_pmarker ( int16_t handle, int16_t count, int16_t *pxyarray );
Beschreibung: Die Funktion zeichnet Marker an bestimmten Positionen. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Marker
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des ersten Markers
...  
...  
pxyarray[2*count-2] x-Koordinate
pxyarray[2*count-1] y-Koordinate des letzten Markers


Hinweis: Die Marker-Attribute und der eingestellte Schreibmodus werden beachtet. Angewendet werden die Marker z.B. vom Programm XACT bei der grafischen Darstellung von Statistiken.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vs_color   vswr_mode   vsm_type   vsm_height   vsm_color   pxyarray

7.5.40 Bindings für v_pmarker

C: void v_pmarker ( int16_t handle, int16_t count, int16_t *pxyarray );
Umsetzung:
void v_pmarker (int16_t handle, int16_t count,
                int16_t *pxyarray)
{
   ptsin[0..2*count-1] = pxyarray[0..2*count-1];

   contrl[0] = 7;
   contrl[1] = count;
   contrl[3] = 0;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 7 # Opcode der Funktion
contrl+2 contrl[1] count # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0..2n-1] pxyarray[0..2n-1]


Hinweis: Dabei gilt n = count.

7.5.41 v_rbox

Name: »Rounded Rectangle« - zeichnet ein Rechteck mit abgerundeten Ecken
VDI-Nummer: 11 (GDP 8)
Deklaration: void v_rbox ( int16_t handle, int16_t *pxyarray );
Beschreibung: Die Funktion zeichnet ein Rechteck mit abgerundeten Ecken. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des Eckpunktes
pxyarray[2] x-Koordinate
pxyarray[3] y-Koordinate der diagonal gegenüber liegenden Ecke


Hinweis: Die Linien-Attribute, der Schreibmodus sowie das Pixelgrößenverhältnis werden berücksichtigt.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vs_color   vswr_mode   vsl_type   vsl_width   vsl_color   vsl_ends   vsl_udsty

7.5.42 Bindings für v_rbox

C: void v_rbox ( int16_t handle, int16_t *pxyarray );
Umsetzung:
void v_rbox (int16_t handle, int16_t *pxyarray)
{
   ptsin[0..3] = pxyarray[0..3];

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 8;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 8 GDP-Nummer
contrl+12 contrl[6] handle
ptsin ptsin[0..3] pxyarray[0..3]

7.5.43 v_rfbox

Name: »Filled rounded Rectangle« - zeichnet eine Rechtecksfläche mit gerundeten Ecken.
VDI-Nummer: 11 (GDP 9)
Deklaration: void v_rfbox ( int16_t handle, int16_t *pxyarray );
Beschreibung: Die Funktion zeichnet ein ausgefülltes Rechteck mit abgerundeten Ecken. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
pxyarray[0] x-Koordinate
pxyarray[1] y-Koordinate des Eckpunktes
pxyarray[2] x-Koordinate
pxyarray[3] y-Koordinate der diagonal gegenüber liegenden Ecke


Hinweis: Die Fülltyp-Attribute, der Schreibmodus sowie das Pixelgrößenverhältnis werden berücksichtigt.
Ergebnis: Die Funktion liefert kein Ergebnis.
Verfügbar: Supported by all drivers. This function composes one of the 10 VDI GDP's (Generalized Drawing Primitives). Although all current drivers support all GDP's, their availability is not guaranteed and may vary. To check for a particular GDP refer to the table returned by v_opnvwk or v_opnwk.
Gruppe: Ausgabefunktionen
Querverweis: Binding   vswr_mode   vs_color   vsf_interior   vsf_style   vsf_color   vsf_udpat   vsf_perimeter   v_rbox

7.5.44 Bindings für v_rfbox

C: void v_rfbox ( int16_t handle, int16_t *pxyarray );
Umsetzung:
void v_rfbox (int16_t handle, int16_t *pxyarray)
{
   ptsin[0..3] = pxyarray[0..3];

   contrl[0] = 11;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 9;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 11 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 9 GDP-Nummer
contrl+12 contrl[6] handle
ptsin ptsin[0..3] pxyarray[0..3]

HomeVDIAttributfunktionenAuskunftsfunktionen