常用函数作图画板

常用函数作图画板

ID:41728322

大小:311.29 KB

页数:20页

时间:2019-08-30

常用函数作图画板_第1页
常用函数作图画板_第2页
常用函数作图画板_第3页
常用函数作图画板_第4页
常用函数作图画板_第5页
资源描述:

《常用函数作图画板》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、常用函数作图画板1・课程设计目的本课程设计实现的是小型函数作图画板,主要实现的功能是通过函数的表达式在画图板上显示出相应的函数图形。其中支持的函数种类有直线、抛物线、圆锥曲线和三角函数的作图;可以对曲线的颜色和宽度进行设定;可以在同一个面板图上显示出多条函数线;在画板上的函数图像可以保存在文件中,也可以从文件中读取函数图像到画板上;在画上函数图像时,自动把函数表达式显示在图像旁边,并可以为图像增加必要的文字说明。坐标系原点可以自行设定,可以自由缩放。2.设计方案论证2.1开发环境的建立在系统屮安装JDK1.7.0,并设置相关环境变量;将eclipse程序放到系统磁盘中,设置好工

2、作空间;2.2设计思路2.2.1本程序中构建一个抽象基类Shape,每种函数的图像类都继承该类,具体作图的算法在每个图像类中实现,对于外部调用来说,并不关心它是椭圆形还是抛物线,都可以统一用指向子类的基类对象来调用,实现了运行时多态。每个画布对象保存了一个LinkedList类型的集合对象,重画时只需用个循环,依次取岀每个Shape对象,并调用重载的画图方法drawo2.2.2为解决重画闪烁问题,采用了双缓冲技术,先在一个Image对象上画图,再一次性将图复制到画布上。2.3设计方法2.3.1系统模块设计此程序将分两个模块来实现功能:界面设计:头部是一个菜单栏,实

3、现新建画布,打开图像,保存图像,退出等功能。左边栏是一个工具箱,放置了各图像画图按钮和对应的参数输入面板。中间是画布选项卡,是作图区域。底部是一个属性面板,可设置画笔大小、线颜色、放大和缩小图像。2.3.2主要算法设计各函数图像的算法:构建一个抽象基类Shape,每种函数的图像类都继承该类,在子类中重载draw(Imagebuffcrlmagc)方法主要的类包括:父类:抽象类Shape子类:抛物线画法类Parabola,双曲线类Hyperbola,坐标轴类Axis,Global类,sin函数类Sin,直线画法类Straight,DoubleTextField,IntTextFi

4、eld等等。2.3.3系统功能设计本程序将实现以下功能:(1)支持直线、抛物线、圆锥曲线和三角函数的作图。点击相应的按钮,可以显示参数输入面板,用户输入函数表达式的相关参数后,点击Draw按钮就可以完成画图。(2)同一个画布中同时作多个图象。每个画布对象中有一个Shape集合,每做一个图,就将指向Shape的子类对象放入集合屮,重画时再从该集合屮取出。(3)保存打开图像。木程序可将画板上的图象成jpg文件,并可以打开jpg图片。(4)显示函数表达式。在画函数图象的同时将表达式显示在图象旁边。2.4流程图如图12.5类,方法,属性的功能描述2.5.1抛物线画法类ParabolaP

5、arabola类成员方法:draw()画抛物线;setA()设置A;getA()得到A;setB()设置B;gctB()得到B;sctC()设置C;gctC()得到C;sctP()设置P;gctPO得到P;点击相应的按钮T显示参数面板T输入参数T点击Draw按钮■>获取参数构造Shape—将该Shape对象加入画布Canvas对象中的成员LinkedList->调用画布对象的repaint()方法重画。演示画抛物线,点击Draw按钮时,首先判断当前编辑的画布Canvas是否为空,不为空则获取参数,抛物线有两种公形式的输入:二项式y2px2+bx+c或标准式y2=2

6、px,获取相应的参数后就构造Shape对象:Shapeshape=newParabola(a,b,c);//二项式,或者Shapeshape=newParabola(p,parabolaType);〃标准式如果构造Shape成功,接着设置画笔颜色和画笔大小:shape.setColor(Global.getColor());shape.setStroke(GlobaLgetStroke());最后将Shanpe对象加入集合并重画:canvas.getShapcList().add(shape);//加入集合canvas.repaint();System,out.println(

7、,z获取参数画抛物线");2.5.2双曲线类Hyperbola双曲线类Hyperbola成员方法:draw()画双曲线;setA()设置A;setB()设置B;setCO设置C;setD()设置D;getA()得到A;getB()得到B;getC()得到C;getD()得到D;2.5.3坐标轴类AxisAxis类成员方法:draw()画坐标轴;setColor()设置颜色;drawLineO画直线;Canvas实现MouseListener,MouseMotionListene接口,当鼠标在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。