您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 图形学课设_计算机软件及应用_IT计算机_专业资料
二0一五~二0一六学年第一学期计算机科学与技术学院课程设计报告书题目:JAVA简单画图程序课程名称:图形学与平面设计班级:学号:姓名:指导教师:二0一五年十一月二十七日一设计目的课程设计是信息与计算科学专业集中实践性环节之一,是学习完《计算机图形学》课程后进行的一次全面的综合练习。其目的是:(1)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。(2)在实践中认识为什么要学习数据结构,掌握数据结构、程序设计语言、程序设计技术之间的关系,是前面所学知识的综合和回顾课程设计是我们的主要教学实践环节,通过课程设计我们围绕基础课或者专业课,运用学的知识,结合实际应用设计而进行的一次综合分析设计能力的训练.课程设计的宗旨在与培养我们在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料,综合运用所学知识的能力,为毕业设计及今后从事专业工作打下基础.通过本次课程设计,能够锻炼我们的动手能力,使我们能够很好的巩固上一个学期所学的知识内容,掌握工程软件设计的基本方法,强化了我们上机动手的能力,通过这次的课程设计,我们感觉到了以前学习的不足,以及在学习的过程中遇到的问题,能使我们对学过的知识加深理解,为后续学的计算机专业课,打下坚实的基础.二总体设计简单绘图板程序此图形图像处理机具有如下功能:1能由鼠标控制绘制直线、矩形、椭圆,并能控制线条的颜色2能改变矩形和椭圆。3能打开和保存为图形文件。4能打开图片。5能通过参数对图片进行缩放我们做的这个绘图板是一个简易的类似Windows画图工具的简单绘图板程序,我们设计了主要有菜单栏,状态栏等基本元素,能够实现简单的集合画图,也能够在鼠标控制下进行手动画图.通过测试程序能够顺利运行.要求利用C#的编程思想以及组件开发原理来完成系统的设计。主要流程图如下:三源代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Drawing.Drawing2D;usingSystem.Runtime.Serialization.Formatters.Binary;usingSystem.IO;usingSystem.Xml.Serialization;usingSystem.Drawing.Imaging;namespace画图板{publicenumShapeType//绘图类型{FreeDraw,Eraser,Line,Rectangle,Ellipse,FillEllipse,FillRectangle,Curve,Path,Pick,Polygon,Text,Circle,FillCircle,SelectRectangle,SelectFillRectangle}publicenumSizeGrip//区块的位置新建矩形直线画笔时间简易绘图板文件查找关于打开保存退出工具栏状态栏颜色橡皮椭圆选择工具{None=0,Top,Bottom,Left,Right,TopLeft,TopRight,BottomLeft,BottomRight,All}publicpartialclassMainForm:Form{#region初始化publicMainForm(){InitializeComponent();clr=colorHatch1.CurrentColor;}{get{if(sizeGripRectList==null){sizeGripRectList=newDictionarySizeGrip,System.Drawing.Rectangle();}returnsizeGripRectList;}}#endregion#region绘图工具事件privatevoidbtnFree_Click(objectsender,EventArgse){Initl();type=ShapeType.FreeDraw;}privatevoidbtnCurve_Click(objectsender,EventArgse){Initl();type=ShapeType.Curve;tmpCurve=newCurve(clr);}privatevoidbtnRectangle_Click(objectsender,EventArgse){Initl();type=ShapeType.Rectangle;}privatevoidbtnFilledRectangle_Click(objectsender,EventArgse){Initl();type=ShapeType.FillRectangle;}privatevoidbtnCircle_Click(objectsender,EventArgse){Initl();type=ShapeType.Circle;}privatevoidbtnFillCircle_Click(objectsender,EventArgse){Initl();type=ShapeType.FillCircle;}privatevoidbtnEllipse_Click(objectsender,EventArgse){Initl();type=ShapeType.Ellipse;}privatevoidbtnFillEllipse_Click(objectsender,EventArgse){Initl();type=ShapeType.FillEllipse;}privatevoidbtnPolygon_Click(objectsender,EventArgse){Initl();type=ShapeType.Polygon;tmpPolygon=newPolygon(clr);}privatevoidbtnText_Click(objectsender,EventArgse){Initl();type=ShapeType.Text;label1.Visible=true;}privatevoidbtnPath_Click(objectsender,EventArgse){type=ShapeType.Path;}privatevoidbtnPick_Click(objectsender,EventArgse){Initl();type=ShapeType.Pick;}#endregion#region图片框事件privatevoidpictureBox1_MouseDown(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){p1=newPoint(e.X,e.Y);if(finish){if(sizegrip==SizeGrip.All){tempmove=p1;return;}else{if(textBox1.Visible){shape=newText(clr,textBox1.Text,textBox1.Font,newPoint(textBox1.Location.X-98,textBox1.Location.Y-34));textBox1.Text=;textBox1.Visible=false;label1.Visible=false;}shapeList.Add(shape);finish=false;StartPolygon=true;Selectshape.Clear();tmpPolygon=newPolygon(clr);tmpCurve=newCurve(clr);pictureBox1.Refresh();Points.Clear();}}if(type==ShapeType.Polygon){if(StartPolygon){tmpPolygon.AddPoint(p1);selectRecStart=selectRecEnd=p1;StartPolygon=false;}elseif(p1==tmpPolygon.Points[0]){foreach(PointpintmpPolygon.Points){selectRecStart=newPoint(Math.Min(selectRecStart.X,p.X),Math.Min(selectRecStart.Y,p.Y));selectRecEnd=newPoint(Math.Max(selectRecEnd.X,p.X),Math.Max(selectRecEnd.Y,p.Y));}selectRecSize=newSize(selectRecEnd.X-selectRecStart.X,selectRecEnd.Y-selectRecStart.Y);finish=true;}else{shape=newPolygon(clr,tmpPolygon.Points,p1,width);pictureBox1.Refresh();}}elseif(type==ShapeType.Curve){if(StartPolygon){tmpCurve.AddPoint(p1);selectRecStart=selectRecEnd=p1;StartPolygon=false;}elseif(tmpCurve.Points.Count==3){tmpCurve.AddPoint(p1);foreach(PointpintmpCurve.Points){selectRecStart=newPoint(Math.Min(selectRecStart.X,p.X),Math.Min(selectRecStart.Y,p.Y));selectRecEnd=newPoint(Math.Max(selectRecEnd.X,p.X),Math.Max(selectRecEnd.Y,p.Y));}selectRecSize=newSize(selectRecEnd.X-selectRecStart.X,selectRecEnd.Y-selectRecStart.Y);finish=true;}else{shape=newCurve(clr,tmpCurve.Points,p1,width);pictureBox1.Refresh();}}elseif(type==ShapeType.FreeDraw||type==ShapeType.Eraser){Points.Add(p1);}elseif(type==ShapeType.Pick){clr=colorHatch1.CurrentColor=CreateImage().GetPixel(e.X,e.Y);}}if(e.Button==MouseButtons.Right){finish=false;StartPolygon=true;Selectshape.Clear();tmpPolygon=newPolygon(clr);tmpCurve=newCurve(clr);shape=null;textBox1.Text=;textBox1.Visible=false;pictureBox1.Refresh();Points.Clear();}}privatevoidpictureBox1_MouseMove(objectsender,MouseEventArgse){if(box.Contains(e.X,e.Y)){if(type==ShapeType.Eraser)this.Cursor=defaultcursor;else{this.defaultcursor=Cursors.Cross;this.Cursor
本文标题:图形学课设_计算机软件及应用_IT计算机_专业资料
链接地址:https://www.777doc.com/doc-3384405 .html