fortran中QuickWin绘图基础.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《fortran中QuickWin绘图基础.docx》由会员分享,可在线阅读,更多相关《fortran中QuickWin绘图基础.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 QuickWin绘图基础 QuickWin支持以像素为基础的图形,其图形库包括了一套完整的图形函数集。1QuickWin应用程序QuickWin图形库提供了MSFLIB.F90和MSFLIB.MOD两个文件,其中包括了访问所有图形函数的说明。文件MSFLIB.F90中包含绘图子程序的定义及接口,文件MSFLIB.MOD中包含了图形过程符号常量说明以及与绘图过程相关的结构体的定义。因此,任何使用QuickWin的程序必须包含USEMSFLIB语句以访问QuickWin的图形库,USEMSFLIB语句应出现在任何声明语句和其他模块包含语句之前。在默认情况下,QuickWin应用程序拥有一个框架
2、主窗口和一个输出子窗口。在主窗口中,有对子窗口及其图形和文本实施操作的菜单栏,其中,File菜单中的Save命令可以把绘图结果保存成*.BMP位图文件。2QuickWin应用程序的创建例1创建显示正弦波形的QuickWin应用程序。操作步骤如下:(1)在Microsoft DeveloperStudio中单击File菜单下的New菜单项,在New对话框中选择ProjectWorkspace,单击OK按钮。(2)在New Project Workspace对话框中,选择QuickWinApplication,将工程名称设置为My_win,单击Create按钮。(3)在Microsoft Deve
3、loperStudio中单击File菜单下的New菜单项,在New对话框中选择TextFile,单击OK按钮,在编辑区输入以下源程序:USE MSFLIBPARAMETER(PI=3.141593)TYPE(QWINFO) winfoTYPE(WXYCOORD) xyINTEGER(2) resultREAL aREAL(8) x,yCHARACTER C*4! 设置子窗口最大化winfo.type = QWIN$MAXresult = SETWSIZEQQ(0, winfo)result = SETWSIZEQQ(QWIN$FRAMEWINDOW, winfo)! 设置子窗口的背景色为白色r
4、esult = SETBKCOLORRGB (#FFFFFF)CALL CLEARSCREEN ($GCLEARSCREEN)! 设置绘图的颜色为黑色result = SETCOLORRGB(#000000)! 设置视窗result = SETWINDOW(.TRUE., -2*pi-1, 1.5, 2*pi+1, -1.5)! 绘制坐标轴x = 2*pi+0.5CALL MOVETO_W(-x, 0D0, XY)result = LINETO_W(x,0D0)! 横轴y = 1.2CALL MOVETO_W(0D0, y, XY)RESULT = LINETO_W(0D0,-y)! 纵轴!
5、坐标轴刻度RESULT=INITIALIZEFONTS()RESULT=SETFONT(h16w12i)DO i = -360, 360, 90x = pi*i/180-0.5CALL MOVETO_W(x, 0D0, XY)WRITE(c,(I4) iCALL OUTGTEXT(c)END DO! 绘制正弦曲线DO a = -360, 360, 0.5x = pi*a/180y = SIN(x) result =SETPIXEL_W(x, y)END DOREAD (*,*) ! 按回车键结束END(4)以文件名demo.f90保存源程序,然后在Microsoft DeveloperStud
6、io中单击Insert菜单下的Files intoProject菜单项,将Demo.f90文件加入到My_win工程中;(5)在Microsoft DeveloperStudio中分别单击Build菜单下的Compile、Build、Execute菜单项,用以编译、生成并运行My_win文件。2 QuickWin窗口的创建QuickWin库包含了许多创建和控制QuickWin窗口的过程。下面介绍这些过程。2.1 访问窗口属性设置图形模式,可使用SETWINDOWCONFIG函数。通过给派生类WINDOWCONFIG中的分量赋值,指定当前的窗口大小等。函数调用方法如下:RESULT = SETW
7、INDOWCONFIG(WC)其中,返回值RESULT为LOGICAL型变量,若调用成功,返回值为.TRUE.,否则为.FALSE.。WC为WINDOWCONFIG结构体类型变量,该类型在MSFLIB.MOD中定义,包含了窗口的大小、颜色、字符集等属性,其定义如下:TYPE WINDOWCONFIG INTEGER(2)NUMXPIXELS! X轴的像素个数 INTEGER(2)NUMYPIXELS! Y轴的像素个数 INTEGER(2)NUMTEXTCOLS! 最大文本列数 INTEGER(2)NUMTEXTROWS! 最大文本行数 INTEGER(2)NUMCOLORS! 颜色索引数INT
8、EGER(4)FONTSIZE! 缺省的字体大小。 CHARACTER(80)TITLE! 窗口标题 CHARACTE(32)EXTENDFONTNAME! 系统提供的多字节字体,如中文宋体 INTEGER(4)EXTENDFONTSIZE! 用于设置多字节字符时的字体大小 INTEGER(4)EXTENDFONTATTRIBUTES ! 字体属性,如粗体、斜体等 INTEGER(2)BITSPERPIXEL! 每像素的位数END TYPE WINDOWCONFIG默认的QuickWin子窗口是全屏模式,例如屏幕分辨率为1024768,则子窗口X轴的像素个数为1024,Y轴的像素个数为768。
9、调用SETWINDOWCONFIG函数设置图形模式,必须为每个分量指定一个确定的值。若只给出某些字段的值,将导致其他字段的值无效。如果WC中的分量的值赋值为-1,即表示该项属性由系统指定。例2设置窗口大小为800600像素,字体大小为1012。USE MSFLIBTYPE (WINDOWCONFIG) WCLOGICAL STATUSINTEGER(2) RESULTWC.NUMXPIXELS = 800WC.NUMYPIXELS = 600WC.NUMTEXTCOLS = -1WC.NUMTEXTROWS = -1WC.NUMCOLORS = -1WC.TITLE= THIS IS A TE
10、STCWC.FONTSIZE =#000A000C! 000A、000C分别为10、12的十六进制表示STATUS = SETWINDOWCONFIG(WC)RESULT = SETTEXTCOLORRGB(#FFFFFF)IF (STATUS) THENWRITE(*,*) WC.NUMTEXTCOLS , WC.NUMTEXTROWSELSEWRITE(*,*) ERROREND IFEND运行程序,可以看到NUMTEXTCOLS为80(800/10),NUMTEXTROWS为50(600/12)。2.2 窗口操作1. 打开子窗口QuickWin应用程序是一个多文档窗口,可使用OPEN语句
11、生成子窗口,语句格式如下:OPEN(UNIT = n,FILE = USER, TITLE = wname,IOFOCUS =status)选项说明:(1)FILE=USER用于打开一个窗口。若缺省,则弹出Windows标准的Open对话框,以供输入文件名,默认子窗口为80列30行的文本窗口。一个QuickWin应用程序最多可以同时打开40个子窗口。通过引用子窗口的单元号,就可以将输出(文本或图形)定向到单元号所代表的子窗口中。(2)TITLE =wname指定子窗口的标题,wname为字符型常量或变量。OPEN语句打开子窗口所对应的通道,但并不立即显示该子窗口。只有当使用SETWINDOWC
12、ONFIG函数设置窗体属性、执行输入/输出语句或显示图形时才显示子窗口,并按照通道号确定为哪一个子窗口。例如:OPEN(UNIT=12, FILE = USER, TITLE = OUTPUTWINDOW)WRITE(12,*) HELLOWORLD用OPEN语句中的FILE = USER打开子窗口时,其对应的其他参数必须设置为顺序文件(缺省值),其他文件格式(如随机文件、无格式文件等)则会导致运行时错误。2激活窗口使一个子窗口成为活动的,可通过调用SETACTIVEQQ函数来实现。函数格式如下:result = SETACTIVEQQ(unit)其中,result为INTEGER(4)类型,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fortran QuickWin 绘图 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内