/* * V_CELLARRAY (C) Digital Design 1991 * * Diese Funktion ist sehr komplex und darum auch schwer zu beschreiben. * Zun„chst wird ein definiertes Rechteck gezeichnet. Dieses Rechteck * wird logisch in eine Tabelle mit beliebig vielen Zeilen und Spalten * eingeteilt. Jedem der dadurch entstehenden Tabellenelemente wird eine * frei definierbare Farbe zugeordnet. Die Bildschirmpunkte, die inner- * halb dieser Tabelle liegen, nehmen die Farbe der sie eingrenzenden * Tabellenelemente an. Ein Beispiel: Der Grafikbildschirm wird in vier * gleiche Teile, also vier Farbzonen zerlegt. Die ausgegebenen Grafik- * punkte nehmen jeweils die Farbe der Zone an, in der sie sich befinden. * Nicht jedes Arbeitsger„t, so z.B. der Monochrommonitor, erlauben den * Einsatz dieser Funktion. Es wird dann lediglich das Rechteck in der * aktuellen Linienfarbe und Linienbreite gezeichnet. */ #include void v_cellarray( int handle, int *pxyarray, int row_length, int el_used, int num_rows, int wrt_mode, int *colarray ) { contrl[7] = row_length; /* L„nge der Zeilen im Farbarray */ contrl[8] = el_used; /* Anzahl der Zonen in den Zeilen des Farbarrays */ contrl[9] = num_rows; /* Anzahl der Zeilen im Farbarray */ contrl[10] = wrt_mode; /* Zeichenmodus (siehe ÝVSWR_MODEÝ..\ATTRIB\VSWR_MOD.CÝ) */ vdipb[1] = colarray; /* Farbarray, enth„lt zeilenweise die Farbe * * jeder Tabellenzone */ vdipb[2] = pxyarray; /* pxyarray[0] = x-Koordinate der unteren linken * * Ecke des Rechteckes * * pxyarray[1] = y-Koordinate der unteren linken * * Ecke des Rechteckes * * pxyarray[2] = x-Koordinate der oberen rechten * * Ecke des Rechteckes * * pxyarray[3] = y-Koordinate der oberen rechten * * Ecke des Rechteckes */ VDI( 10, 2, num_rows * el_used, handle ); vdipb[1] = intin; vdipb[2] = ptsin; }