📄 node104.html
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2 Final//FR"><!-- Converted with LaTeX2HTML 95.1 (Fri Jan 20 1995) --><!-- by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds --><!-- Modified Simulog 03/97 --><HTML><HEAD><TITLE>8.2 Adapting a new output terminal</TITLE><LINK REL=STYLESHEET TYPE="text/css" HREF="./Modulef.css" TITLE="Modulef CSS"><meta name="description" value="8.2 Adapting a new output terminal"><meta name="keywords" value="Guide6"><meta name="resource-type" value="document"><meta name="distribution" value="global"></HEAD><BODY BGCOLOR="#FFFFFF"><P> <IMG SRC="../icons/smallmod.gif" WIDTH=211 HEIGHT=50 ALIGN=BOTTOM ALT="Modulef"><A NAME=tex2html1688 HREF="node103.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/previous_motif.gif" ALT="previous"></A><A NAME=tex2html1694 HREF="node102.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/up_motif.gif" ALT="up"></A><A NAME=tex2html1696 HREF="node105.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/next_motif.gif" ALT="next"></A><A NAME=tex2html1698 HREF="node2.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/contents_motif.gif" ALT="contents"></A><A HREF="../Guide6-18/node104.html"><IMG BORDER=0 SRC="../icons/zoom18.gif" ALIGN=BOTTOM ALT="[BIG]"></A><A HREF="../Guide6-14/node104.html"><IMG BORDER=0 SRC="../icons/zoom14.gif" ALIGN=BOTTOM ALT="[Normal]"></A><A HREF="../Guide6-10/node104.html"><IMG BORDER=0 SRC="../icons/zoom10.gif" ALIGN=BOTTOM ALT="[small]"></A><BR><B> Next: </B> <A NAME=tex2html1697 HREF="node105.html">8.3 List of devices available</A><B>Up: </B> <A NAME=tex2html1695 HREF="node102.html">8 Adapting a new terminal</A><B> Prev: </B> <A NAME=tex2html1689 HREF="node103.html">8.1 Adapting a new input terminal</A><B><A HREF="node2.html" >Contents</A></B><HR SIZE=3 WIDTH="75%"><H1><A NAME=SECTION05820000000000000000>8.2 Adapting a new output terminal</A></H1><P><P><P>The link between FORTRAN 3D and the output terminals is made by two intermediary subroutines, <b> PERFGN</b> and <b> ITRCTG</b>.<P> Subroutine ITRCTG was presented in the previous section.Subroutine PERFGN serves as interface between the graphics software, FORTRAN 3D, andyour basic device.<P><PRE> PERFGN : ------ SUBROUTINE PERFGN(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) CHARACTER *(*)STRING REAL V1(*), V2(*), V3(*) INTEGER ICH(*) include 'data_f3d.ins' GOTO(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), IDEVICC IF IDEVIC=0 ASSIGN THE NUMBER OF DEVICES TO ICH(1) IF(IDEVIC.EQ.0)THENC ICH(1) = NUMBER OF DEVICES AVAILABLE ICH(1)=11 RETURN ENDIF CALL PERIFX(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN001 CONTINUEC APOLLO CALL PERIF5(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN002 CONTINUEC LASER_WRITER(POST_SCRIPT) CALL PERIFD(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN003 CONTINUEC X_WINDOW_V11 CALL PERIFX11(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN004 CONTINUEC TEKTRONIX_4014 CALL PERIF1(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN005 CONTINUEC APOLLO_5 CALL PERIF5(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN006 CONTINUEC PRINTER CALL PERIF7(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN007 CONTINUEC VERSATEK_SPECTRUM_V80 CALL PERIF8(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN008 CONTINUEC VERSATEK_V80 CALL PERIFC(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN009 CONTINUEC TEKTRONIX_4107 CALL PERIFE(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN010 CONTINUEC TEKTRO_4105 CALL PERIFN(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN011 CONTINUEC PHIGS CALL PERPHG(INSTRU, V1, V2, V3, I1, I2, I3, ICH, STRING) RETURN END</PRE><P><DL COMPACT><DT>Note:<DD> If you add or delete a terminal, do not forget to modify the values of ICH(1) (the number of terminals available) and the goto statement.<P> </DL><P>For an arbitrary driver, the parameters are:<P><UL><LI> INSTRU: the number of the function to perform (see below);<P><LI> V1, V2, V3: the real arrays;<P><LI> T1, I2, I3: the integer values;<P><LI> ICH: an integer array;<P><LI> STRING: a character string.<P></UL><P>The utilization of these variables depends on INSTRU (see below).<P>To use a graphics terminal, which is not yet supplied on the MODULEF magnetic tape,the user needs to write program PERIF* (see below) and include a call tosubroutine PERFGN in it.<P><P><P>Parameter INSTRU has very particular effects if it is negative:<P><PRE> if(INSTRU.lt.0)then {interrogation du device} if( INSTRU.eq.-1)then c print on i1= number of order call wchari(i1, 'PERIPHERIQUE XXX') return elseif(INSTRU.eq.-2)then c definition of the call parameters with dialogue c we assign, using dialogue, the call parameters c that we store in ICH(1), ICH(2), ... STRING return elseif(INSTRU.eq.-3)then c default parameters (without dialogue) ICH(1)=std { affichage standard : plein ecran } ICH(2)=2 { couleur du fond} STRING='blabla' return endif endif call wchari(INSTRU, ' est une valeur incomprehensible') return GOTO indexe selon les valeurs >0 de INSTRU goto(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32,33,34,35), INSTRU</PRE><P>The different tasks to be performed, referenced by INSTRU, are described below:<P><PRE> INSTRU = 1 : INITIALIZATION OF THE TERMINAL (DEVICE) ---------- IN : I1 : number of the active terminal ICH(*) and STRING : supplementary information for certain terminals All variables used are initialized by default (for example: line type, text size, ...). INSTRU = 2 : DEFINITION OF THE GRAPHIC CHARACTERISTICS (LIGH3) ---------- IN : I1 : intensity (if >= 0 assign) I2 : blinking (0 no, 1 yes) (if >= 0 assign) if stereo ( right=4 / left=2 ) I3 : color number in the color table (if >= 0 assign) INSTRU = 3 : DEFINITION OF LINES (DRAW3) ---------- IN : I1 : line type (full, dotted ...) define : type = I1 if I1 < 0 no lines plotted V1(1) : line thickness in mm. (if >= 0 assign) INSTRU = 4 : PLOT A LINE SEGMENT (LIN2TO, LIN3TO, ...) ---------- IN : V1(1) : abscissa of the beginning of the segment V1(2) : ordinate of the beginning of the segment V2(1) : abscissa of the end of the segment V2(2) : ordinate of the end of the segment if type < 0 no plot INSTRU = 5 : PLOT TEXT (TXT2D, TXT3D, ...) ---------- IN : I1 : number of characters in the text V1(1) : abscissa of the beginning of the text V1(2) : ordinate of the beginning of the text STRING : the text if type < 0 no plot if I1 = 1 and STRING(1:1) has a set of centerable characters ( O o X x + * 0 ) center the character. INSTRU = 6 : START OF A DESIGNATED ZONE (DEBAS) ---------- IN : I1 : zone identifier INSTRU = 7 : END OF DESIGNATED ZONE (FINAS) ---------- INSTRU = 8 : TEXT PLOT CHARACTERISTICS (DRW3TX) ---------- IN : I1 : number of the character font available i1=0 look for the font with the size closest to that chosen i1#0 use font i1 V1(1) : character size in cm. V2(1) : text angle w.r.t. the horizontal (as a fraction of pi/2.) INSTRU = 9 : START OF A FACET (DEBFAC) ---------- IN : I1 : = 0 : external contour, 1 hole INSTRU = 10 : END OF FACET (FINFAC) ----------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -