📄 mfb.0
字号:
angles are in degrees and are greater than or equal to zero and less than or equal to 360. The argument _n_s_i_d_e_s is the number of line segments with which a 360 degree arc will be drawn. The default value for _n_s_i_d_e_s is twenty. 11MFB(3) 6/21/83 void MFBPolygon(poly) MFBPOLYGON *poly; _M_F_B_P_o_l_y_g_o_n draws a polygon with the current fill pat- tern and color. _P_o_l_y is a pointer to a data structure defined in the _m_f_b._h file as follows: struct mfbpolygon { int nvertices; /* number of (x,y) coordinate pairs */ int *xy; /* pointer to array of (x,y) coordinates */ }; typedef struct mfbpolygon MFBPOLYGON; The contents of the coordinate array are organized such that xy[0] is the x coordinate of the first vertex, xy[1] is the y coordinate of the first vertex, xy[2] is the x coordinate of the second vertex, etc. The difference between the _M_F_B_P_O_L_Y_G_O_N typedef and the _M_F_B_P_A_T_H typedef defined above is that the _M_F_B_P_O_L_Y_G_O_N struct is assumed to define a closed path of coordi- nates. MFBPATH *MFBArcPath(X, Y, rad, angle1, angle2, nsides) int X, Y, rad; int angle1, angle2, nsides; _M_F_B_A_r_c_P_a_t_h returns a pointer to a _M_F_B_P_A_T_H struct that contains an arc with center at _X, _Y and with radius _r_a_d beginning at _a_n_g_l_e_1 with respect to the positive y-axis and ending at _a_n_g_l_e_2 in a counter-clockwise direction. Both angles are in degrees and are greater than or equal to zero and less than or equal to 360. The argu- ment _n_s_i_d_e_s is the number of line segments with which the arc will be drawn. The default value for _n_s_i_d_e_s is twenty. MFBPOLYGON *MFBEllipse(X, Y, radx, rady, nsides) int X, Y, rad, nsides; _M_F_B_E_l_l_i_p_s_e_P_a_t_h returns a pointer to a _M_F_B_P_O_L_Y_G_O_N struct that contains an elliptical polygon with center at _X, _Y and with distance _r_a_d_x from the center to an edge along the x-axis and distance _r_a_d_y from the center to an edge along the y-axis. The argument _n_s_i_d_e_s is the number of line segments with which the arc will be drawn. The default value for _n_s_i_d_e_s is twenty.126/21/83 MFB(3) void MFBText(text, X, Y, phi) char *text; int X, Y, phi; _M_F_B_T_e_x_t displays a null terminated string pointed to by _t_e_x_t with the lower left corner at _X, _Y in the display viewport with the current color and rotated at the angle _p_h_i in degrees. The default value for _p_h_i is zero. void MFBNaiveBoxFill(left, bottom, right, top) int top, bottom, left, right; _M_F_B_N_a_i_v_e_B_o_x_F_i_l_l can be used to draw a filled rectangle on a graphics device that does not support fill pat- terns. The _M_F_B_L_i_n_e routine is used to draw rectangles with eight different fixed fill styles. If the graph- ics device does not have a command primitive for draw- ing a box, then the _M_F_B_B_o_x routine defined above defaults to _M_F_B_N_a_i_v_e_B_o_x_F_i_l_l.RASTER ROUTINES void MFBRasterCopy(X,Y,DX,DY,DestX,DestY); int X,Y,DX,DY,DestX,DestY; _M_F_B_R_a_s_t_e_r_C_o_p_y copies a rectangular area with the bot- tom, left corner at _X,_Y and with length _D_X in the X direcion and width _D_Y in the Y direction to an area with the bottom, left corner at _D_e_s_t_X,_D_e_s_t_Y. The mode of the copy operation was specified by the last call to _M_F_B_S_e_t_A_L_U_M_o_d_e.INFORMATION ACQUISITION int MFBInfo(info); int info; _M_F_B_I_n_f_o is a routine for obtaining device specific information. The possible values for _i_n_f_o are defined in _m_f_b._h as follows: #define MAXX 1 /* max x coordinate */ #define MAXY 2 /* max y coordinate */ #define MAXCOLORS 3 /* max number of colors */ #define MAXINTENSITY 4 /* max color intensity */ #define MAXFILLPATTERNS 5 /* max number of fill patterns */ #define MAXLINESTYLES 6 /* max number of line styles */ #define MAXBLINKERS 7 /* max number of blinkers */ #define POINTINGDEVICE 8 /* terminal has pointing device */ #define POINTINGBUTTONS 9 /* pointing device has buttons */ #define NUMBUTTONS 10 /* num. of pointing dev. buttons */ #define BUTTON1 11 /* value returned by button 1 */ #define BUTTON2 12 /* value returned by button 2 */ #define BUTTON3 13 /* value returned by button 3 */ 13MFB(3) 6/21/83 #define BUTTON4 14 /* value returned by button 4 */ #define BUTTON5 15 /* value returned by button 5 */ #define BUTTON6 16 /* value returned by button 6 */ #define BUTTON7 17 /* value returned by button 7 */ #define BUTTON8 18 /* value returned by button 8 */ #define BUTTON9 19 /* value returned by button 9 */ #define BUTTON10 20 /* value returned by button 10 */ #define BUTTON11 21 /* value returned by button 11 */ #define BUTTON12 22 /* value returned by button 12 */ #define TEXTPOSITIONALBE 30 /* Bool: positionable text */ #define TEXTROTATABLE 31 /* Bool: rotatable text */ #define FONTHEIGHT 32 /* font height in pixels */ #define FONTWIDTH 33 /* font width in pixels */ #define FONTXOFFSET 34 /* font x offset in pixels */ #define FONTYOFFSET 35 /* font y offset in pixels */ #define DESTRUCTIVETEXT 36 /* Bool: text can be destructive */ #define OVERSTRIKETEXT 37 /* Bool: text can be overstrike */ #define VLT 38 /* Bool: terminal has VLT */ #define BLINKERS 39 /* Bool: terminal has blinkers */ #define FILLEDPOLYGONS 40 /* Bool: terminal can fill polygons */ #define DEFFILLPATTERNS 41 /* Bool: definable fill patterns */ #define DEFCHANNELMASK 42 /* Bool: definable write mask */ #define DEFLINEPATTERN 43 /* Bool: definable line styles */ #define CURFGCOLOR 44 /* current foreground color */ #define CURFILLPATTERN 45 /* current fill pattern */ #define CURLINESTYLE 46 /* current line style */ #define CURCHANNELMASK 47 /* current channel mask */ #define CURREADMASK 48 /* current read mask */ #define NUMBITPLANES 49 /* number of bit planes */ #define DEFREADMASK 50 /* Bool: definable read mask */ #define RASTERCOPY 51 /* Bool: term has raster copy */ #define OFFSCREENX 52 /* left of off screen memory */ #define OFFSCREENY 53 /* bottom of off screen memory */ #define OFFSCREENDX 54 /* length of off screen memory */ #define OFFSCREENDY 55 /* width of off screen memory */ If an invalid argument is used, _M_F_B_I_n_f_o will return -1.WINDOW/VIEWPORT TRANSFORMATIONS _M_F_B provides a set of procedures for converting from window coordinates to viewport coordinates and vice versa. These transformation routines are NOT used by the _M_F_B display rou- tines and must be invoked separately by an application pro- gram. void MFBSetViewport(left, bottom, right, top) int left, bottom, right, top; void MFBSetWindow(left, bottom, right, top) int left, bottom, right, top;146/21/83 MFB(3) int MFBScaleX(X) int X; int MFBScaleY(Y) int Y; int MFBDescaleX(X) int X; int MFBDescaleY(Y) int Y; To use these routines, it is necessary to define both the viewport of the graphics display and the window in the working area by using _M_F_B_S_e_t_V_i_e_w_p_o_r_t and _M_F_B_S_e_t_W_i_n_- _d_o_w. The viewport must always be defined by non- negative integers that are within the resolution of the graphics display. Once defined, _M_F_B_S_c_a_l_e_X and _M_F_B_S_c_a_- _l_e_Y will convert from window coordinate values to viewport coordinates. _M_F_B_D_e_s_c_a_l_e_X and _M_F_B_D_e_s_c_a_l_e_Y will perform the inverse transformation. The transform rou- tines return the scaled values.GEOMETRY CLIPPING ROUTINES _M_F_B provides a set of routines for clipping lines and polygons to a given window. void MFB_Y_Intercept(X1, Y1, X2, Y2, value, Yvalue) int X1, Y1, X2, Y2; int value; int *Yvalue; _M_F_B__Y__I_n_t_e_r_c_e_p_t calculates the value _Y_v_a_l_u_e of the y coordinate at the point of intersection of a line defined by the two coordinates _X_1, _Y_1 and _X_2, _Y_2, and a vertical line with all x coordinates equal to _v_a_l_u_e. void MFB_X_Intercept(X1, Y1, X2, Y2, value, Xvalue) int X1, Y1, X2, Y2; int value; int *Xvalue; _M_F_B__X__I_n_t_e_r_c_e_p_t calculates the value _X_v_a_l_u_e of the x coordinate at the point of intersection of a line defined by _X_1, _Y_1 and _X_2, _Y_2, and a horizontal line with all y coordinates equal to _v_a_l_u_e. void MFBLineClip(X1, Y1, X2, Y2, left, bottom, right, top); int *X1, *Y1, *X2, *Y2; int left, bottom, right, top; The above clipping routines are used by _M_F_B_L_i_n_e_C_l_i_p to clip the line segment defined by _X_1, _Y_1 and _X_2, _Y_2 to 15MFB(3) 6/21/83 the window defined by _l_e_f_t, _b_o_t_t_o_m, _r_i_g_h_t, and _t_o_p. void MFBPolygonClip(poly, top, bottom, left, right) MFBPOLYGON *poly; int top, bottom, left, right; _M_F_B_P_o_l_y_g_o_n_C_l_i_p clips a polygon with less than 200 ver- tices defined by _p_o_l_y to the window defined by _l_e_f_t, _b_o_t_t_o_m, _r_i_g_h_t, and _t_o_p. _p_o_l_y is replaced by the clipped polygon. MFBPATH *MFBArcClip(path, left, bottom, right, top) MFBPATH *path; int left, bottom, right, top; _M_F_B_A_r_c_C_l_i_p clips an arc with less than 200 vertices defined by _p_a_t_h to the window defined by _l_e_f_t, _b_o_t_t_o_m, _r_i_g_h_t, and _t_o_p. _M_F_B_C_l_i_p_A_r_c returns a pointer to an array of five _M_F_B_P_A_T_H structs that define the clipped arc. The contents of several of these returned structs may define a null path.SPECIAL VIEWPORT ROUTINES void MFBMore(left, bottom, right, top, Textfile) int left, bottom, right, top; FILE *Textfile; _M_F_B_M_o_r_e will display the contents of a file _T_e_x_t_f_i_l_e in a viewport defined by _l_e_f_t, _b_o_t_t_o_m, _r_i_g_h_t, and _t_o_p in a manner similar to the UCB program _M_O_R_E(_1). void MFBScroll(left, bottom, right, top, Textfile) int left, bottom, right, top; FILE *Textfile; _M_F_B_S_c_r_o_l_l is an enhanced version of _M_F_B_M_o_r_e defined above that allows you to scroll up or down through the contents of _T_e_x_t_f_i_l_e. The contents of _T_e_x_t_f_i_l_e are displayed in a viewport defined by _l_e_f_t, _b_o_t_t_o_m, _r_i_g_h_t, and _t_o_p.DIAGNOSTICS char *MFBError(errnum) int errnum; _M_F_B_E_r_r_o_r can be used to obtain a null terminated string that describes the error associated with any of the above mentioned error codes. _e_r_r_n_u_m is the error code returned by a _M_F_B routine. _M_F_B_E_r_r_o_r returns a pointer to the error information string. The possible values for _e_r_r_n_u_m are defined in _m_f_b._h as follows:166/21/83 MFB(3) #define MFBBADENT -10 /* Unknown terminal type */ #define MFBBADMCF -20 /* Can't open mfbcap file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -