资源描述:
《基于c_的绘图编辑器的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第26卷第6期计算机应用与软件Vol126No.62009年6月ComputerApplicationsandSoftwareJun.2009基于C++的绘图编辑器的设计与实现宋韬冯宇秦艳华(上海市计算技术研究所上海200040)摘要绘图是C++中常用的一种把抽象变得直观的手段,介绍了一种绘图编辑器的设计和实现过程,阐述了一种特定格式的ASCII码文件的编辑和预览的方法。关键词ASCII绘图编辑器DESIGNANDIMPLEMENTATIONOFC++BASEDDRAWINGEDITORSongTaoFengYuQin
2、Yanhua(ShanghaiInstituteofComputingTechnology,Shanghai200040,China)AbstractDrawingisonekindofcommonlyusedmeansinC++tomaketheabstractthingstobedirect2viewed.Theprocessofdesignandimplementationofadrawingeditorisintroducedinthispaper,alsotheeditionandpreviewmethodo
3、fonekindoftheASCIIfilewithspe2cificextensioniselaborated.KeywordsASCIIDrawingEditor要使软件界面发生变化,可以通过修改其中的参数,在阅览过说0引言明书之后,这些参数的意义是容易明白的,但是如果修改了参数之后手头如果没有图形卡的话就看不到效果,而且有时候可能编译器,是将便于人编写、阅读、维护的高阶计算机语言翻发生参数修改错误的情况。能否在Windows下,修改了参数之译为计算机能解读、运行的低阶机器语言的程序。编译器将原后马上看到预览的效果
4、呢?在此前提下,我们开始了本文所介始程序作为输入,翻译产生使用目标语言的等价程序。把编译绍的工具的开发。原理运用到计算机绘图上去会有什么样的效果呢?本文运用编译原理、计算机图形学、软件工程学等知识,基于某个DOS下的2算法实现图形检测软件项目的支持,介绍了该项目的一个图形预览工具的开发过程。2.1编译原理算法1开发背景(1)词法分析每一行第一个参数都是固定值,例如第一行的第一个参数是1,第二行的第一个参数是2,⋯⋯其次后面有这么一个ASCII码文件,里面的内容类似于如表1所示。的参数根据说明书都是有一定要求的,不是可以
5、随意修改的。比如某行参数代表要绘制一个菜单,那么就要考虑像素,通过计表1文件参数表算得到此像素下的屏幕的大小,从而规定菜单的长和宽的范围;外框=1,1,2,127,0,1,8,0菜单文字的长度不能超出此菜单项分配的长度范围等等。选择框=2,1,2,127,0,12,8(2)语法分析从左到右、从上向下的分析方法,每一行格文字=3,2,照相机选择,2式都是:说明文字=参数1,参数2,⋯参数n的形式,参数之间是以‘,’隔开。所以可以用数据结构把逗号之间的参数保存起选择开始column=4,11来,以便到时候分析。选择项目名=
6、1:有无设定,15,22.2计算机图形学原理选择项目名=2:照相机1,15,2[4](1)VC++6.0绘制点函数该函数封装在CDC类中,选择项目名=3:照相机2,15,2函数原型为SetPixel(intx,inty,COLORREF),第一个参数是选择项目名=4:照相机3,15,2点的X坐标,第二个参数是点的Y坐标,第三个参数是点的颜色。这个参数可以选择常用的八种颜色变量,分别是:RGB(0,选择项目名=5:照相机4,15,20,0)、RGB(255,0,0)、RGB(0,0,255)、RGB(0,255,255)
7、、RGB这样一种文件通过图像卡的处理能在DOS下通过某个软件的组织生成丰富多彩的图形界面。但是这种文件有许多个,收稿日期:2008-03-31。宋韬,高工,主研领域:计算机软件。第6期宋韬等:基于C++的绘图编辑器的设计与实现131(255,255,255)、RGB(0,255,0)、RGB(255,255,0)、RGB其中,CPointInfoView是左边的进行文件编辑的CEditView(255,0,255)。类的视图,CDifferViewByOneDocView是右边显示预览画面的(2)VC++6.0绘制直线
8、函数该函数封装在CDC类中,CView类的视图。pMainView、pPointInfoView分别是左右两个它由两个函数组成,函数原型分别是MoveTo(intx0,inty0)、Line2视图的指针,在此把两个视图的指针保存下来以便以后调用。To(intx,inty)。这两个函数表示从点(x0,y0)画线到点(x,y)。至此,