ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:80.94KB ,
资源ID:11343463      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11343463.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图形学课设计算机软件及应用IT计算机专业资料.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图形学课设计算机软件及应用IT计算机专业资料.docx

1、图形学课设计算机软件及应用IT计算机专业资料二0一五 二0一六 学年第 一 学期计算机科学与技术学院课程设计报告书 题 目: JAVA简单画图程序 课程名称: 图形学与平面设计 班 级: 学 号: 姓 名: 指导教师: 二0一五年 十一月二十七日一 设计目的 课程设计是信息与计算科学专业集中实践性环节之一,是学习完计算机图形学课程后进行的一次全面的综合练习。其目的是: (1)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。 (2)在实践中认识为什么要学习数据结构,掌握数据结构、程序设计语言、程

2、序设计技术之间的关系,是前面所学知识的综合和回顾 课程设计是我们的主要教学实践环节,通过课程设计我们围绕基础课或者专业课,运用学的知识,结合实际应用设计而进行的一次综合分析设计能力的训练. 课程设计的宗旨在与培养我们在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料,综合运用所学知识的能力,为毕业设计及今后从事专业工作打下基础.通过本次课程设计,能够锻炼我们的动手能力,使我们能够很好的巩固上一个学期所学的知识内容,掌握工程软件设计的基本方法,强化了我们上机动手的能力,通过这次的课程设计,我们感觉到了以前学习的不足,以及在学习的过程中遇到的问题,能使我们对学过的知识加深理解,为后续学的

3、计算机专业课,打下坚实的基础.二 总体设计简单绘图板程序此图形图像处理机具有如下功能:1能由鼠标控制绘制直线、矩形、椭圆,并能控制线条的颜色2能改变矩形和椭圆。3能打开和保存为图形文件。4能打开图片。5能通过参数对图片进行缩放我们做的这个绘图板是一个简易的类似Windows画图工具的简单绘图板程序,我们设计了主要有菜单栏,状态栏等基本元素,能够实现简单的集合画图,也能够在鼠标控制下进行手动画图.通过测试程序能够顺利运行. 要求利用C#的编程思想以及组件开发原理来完成系统的设计。 主要流程图如下:三 源代码using System;using System.Collections.Generic

4、;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Drawing.Drawing2D;using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System.Xml.Serialization;using System.Drawing.Imaging;namespace 画图板 public enum S

5、hapeType /绘图类型 FreeDraw, Eraser, Line, Rectangle, Ellipse, FillEllipse, FillRectangle, Curve, Path, Pick, Polygon, Text, Circle, FillCircle, SelectRectangle, SelectFillRectangle public enum SizeGrip /区块的位置 None = 0, Top, Bottom, Left, Right, TopLeft, TopRight, BottomLeft, BottomRight, All public par

6、tial class MainForm : Form #region 初始化 public MainForm() InitializeComponent(); clr = colorHatch1.CurrentColor; get if (sizeGripRectList = null) sizeGripRectList = new Dictionary(); return sizeGripRectList; #endregion #region 绘图工具事件 private void btnFree_Click(object sender, EventArgs e) Initl(); typ

7、e = ShapeType.FreeDraw; private void btnCurve_Click(object sender, EventArgs e) Initl(); type = ShapeType.Curve; tmpCurve = new Curve(clr); private void btnRectangle_Click(object sender, EventArgs e) Initl(); type = ShapeType.Rectangle; private void btnFilledRectangle_Click(object sender, EventArgs

8、e) Initl(); type = ShapeType.FillRectangle; private void btnCircle_Click(object sender, EventArgs e) Initl(); type = ShapeType.Circle; private void btnFillCircle_Click(object sender, EventArgs e) Initl(); type = ShapeType.FillCircle; private void btnEllipse_Click(object sender, EventArgs e) Initl();

9、 type = ShapeType.Ellipse; private void btnFillEllipse_Click(object sender, EventArgs e) Initl(); type = ShapeType.FillEllipse; private void btnPolygon_Click(object sender, EventArgs e) Initl(); type = ShapeType.Polygon; tmpPolygon = new Polygon(clr); private void btnText_Click(object sender, EventA

10、rgs e) Initl(); type = ShapeType.Text; label1.Visible = true; private void btnPath_Click(object sender, EventArgs e) type = ShapeType.Path; private void btnPick_Click(object sender, EventArgs e) Initl(); type = ShapeType.Pick; #endregion #region 图片框事件 private void pictureBox1_MouseDown(object sender

11、, MouseEventArgs e) if (e.Button = MouseButtons.Left) p1 = new Point(e.X, e.Y); if (finish) if (sizegrip = SizeGrip.All) tempmove = p1; return; else if (textBox1.Visible) shape = new Text(clr, textBox1.Text, textBox1.Font, new Point(textBox1.Location.X - 98, textBox1.Location.Y - 34); textBox1.Text

12、= ; textBox1.Visible = false; label1.Visible = false; shapeList.Add(shape); finish = false; StartPolygon = true; Selectshape.Clear(); tmpPolygon = new Polygon(clr); tmpCurve = new Curve(clr); pictureBox1.Refresh(); Points.Clear(); if (type = ShapeType.Polygon) if (StartPolygon) tmpPolygon.AddPoint(p

13、1); selectRecStart = selectRecEnd = p1; StartPolygon = false; else if (p1 = tmpPolygon.Points0) foreach (Point p in tmpPolygon.Points) selectRecStart = new Point(Math.Min(selectRecStart.X, p.X), Math.Min(selectRecStart.Y, p.Y); selectRecEnd = new Point(Math.Max(selectRecEnd.X, p.X), Math.Max(selectR

14、ecEnd.Y, p.Y); selectRecSize = new Size(selectRecEnd.X - selectRecStart.X, selectRecEnd.Y - selectRecStart.Y); finish = true; else shape = new Polygon(clr, tmpPolygon.Points, p1,width); pictureBox1.Refresh(); else if (type = ShapeType.Curve) if (StartPolygon) tmpCurve.AddPoint(p1); selectRecStart =

15、selectRecEnd = p1; StartPolygon = false; else if (tmpCurve.Points.Count = 3) tmpCurve.AddPoint(p1); foreach (Point p in tmpCurve.Points) selectRecStart = new Point(Math.Min(selectRecStart.X, p.X), Math.Min(selectRecStart.Y, p.Y); selectRecEnd = new Point(Math.Max(selectRecEnd.X, p.X), Math.Max(selec

16、tRecEnd.Y, p.Y); selectRecSize = new Size(selectRecEnd.X - selectRecStart.X, selectRecEnd.Y - selectRecStart.Y); finish = true; else shape = new Curve(clr, tmpCurve.Points, p1,width); pictureBox1.Refresh(); else if (type = ShapeType.FreeDraw | type = ShapeType.Eraser) Points.Add(p1); else if (type =

17、 ShapeType.Pick) clr = colorHatch1.CurrentColor = CreateImage().GetPixel(e.X, e.Y); if (e.Button = MouseButtons.Right) finish = false; StartPolygon = true; Selectshape.Clear(); tmpPolygon = new Polygon(clr); tmpCurve = new Curve(clr); shape = null; textBox1.Text = ; textBox1.Visible = false; picture

18、Box1.Refresh(); Points.Clear(); private void pictureBox1_MouseMove(object sender, MouseEventArgs e) if (box.Contains(e.X, e.Y) if (type = ShapeType.Eraser) this.Cursor = defaultcursor; else this.defaultcursor = Cursors.Cross; this.Cursor = this.defaultcursor; break; case ShapeType.FillCircle: shape

19、= new FillCircle(clr, p1, p2); break; default: break; pictureBox1.Refresh(); private void pictureBox1_MouseUp(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) if (type = ShapeType.Eraser | type = ShapeType.FreeDraw) shapeList.Add(shape); Points = new List(); return; else if (type =

20、 ShapeType.Pick) colorHatch1.CurrentColor = CreateImage().GetPixel(e.X, e.Y); return; else if (type = ShapeType.Polygon | type = ShapeType.Curve) else if (p1 = new Point(e.X, e.Y) return; if (!finish) if (type = ShapeType.Polygon) tmpPolygon.AddPoint(new Point(e.X, e.Y); else if (type = ShapeType.Cu

21、rve) tmpCurve.AddPoint(new Point(e.X, e.Y); else startpoint = p1; endpoint = new Point(e.X, e.Y); finish = true; selectRecStart = new Point(Math.Min(p1.X, p2.X), Math.Min(p1.Y, p2.Y); selectRecSize = new Size(Math.Abs(p1.X - p2.X), Math.Abs(p1.Y - p2.Y); private void pictureBox1_MouseDoubleClick(obj

22、ect sender, MouseEventArgs e) if (type = ShapeType.Polygon) foreach (Point p in tmpPolygon.Points) selectRecStart = new Point(Math.Min(selectRecStart.X, p.X), Math.Min(selectRecStart.Y, p.Y); selectRecEnd = new Point(Math.Max(selectRecEnd.X, p.X), Math.Max(selectRecEnd.Y, p.Y); selectRecSize = new S

23、ize(selectRecEnd.X - selectRecStart.X, selectRecEnd.Y - selectRecStart.Y); finish = true; else if (type = ShapeType.Curve) foreach (Point p in tmpCurve.Points) selectRecStart = new Point(Math.Min(selectRecStart.X, p.X), Math.Min(selectRecStart.Y, p.Y); selectRecEnd = new Point(Math.Max(selectRecEnd.

24、X, p.X), Math.Max(selectRecEnd.Y, p.Y); selectRecSize = new Size(selectRecEnd.X - selectRecStart.X, selectRecEnd.Y - selectRecStart.Y); finish = true; private void pictureBox1_Paint(object sender, PaintEventArgs e) g = e.Graphics; if (shapeList.Count 0) foreach (Shape s in shapeList) s.Draw(g); if (

25、Selectshape.Count 0) foreach (Shape s in Selectshape) s.Draw(g); if (shape != null) shape.Draw(g); private void colorHatch1_ColorChange(object sender, MyControl.ColorHatch.ColorChangeEventArgs e) clr = colorHatch1.CurrentColor; textBox1.ForeColor = clr; if (StartPolygon = false) switch (type) case S

26、hapeType.Curve: tmpCurve = new Curve(clr, tmpCurve.Points,width); break; case ShapeType.Polygon: tmpPolygon = new Polygon(clr, tmpPolygon.Points,width); break; / 初始化按键 / private void Initl() if (finish) if (textBox1.Visible) shape = new Text(clr, textBox1.Text, textBox1.Font, new Point(textBox1.Loca

27、tion.X - 98, textBox1.Location.Y - 34); textBox1.Text = ; textBox1.Visible = false; shapeList.Add(shape); finish = false; shape = null; StartPolygon = true; Selectshape.Clear(); Points.Clear(); pictureBox1.Refresh(); / / 获取橡皮擦鼠标样式 / private void EraserCursor() Bitmap bitmap = new Bitmap(width * 2, w

28、idth * 2); Graphics g = Graphics.FromImage(bitmap); g.Clear(Color.White); g.DrawRectangle(new Pen(Color.Black), new System.Drawing.Rectangle(0, 0, bitmap.Size.Width - 1, bitmap.Size.Width - 1); g.Dispose(); this.defaultcursor = new Cursor(Icon.FromHandle(bitmap.GetHicon().Handle); private void save(

29、string path) if (path = null) path = .图片.sav; if (serializer) try BinaryFormatter binserializer = new BinaryFormatter(); using (FileStream fs = new FileStream(path, FileMode.CreateNew) binserializer.Serialize(fs, shapeList); fs.Close(); MessageBox.Show(保存成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); catch (Exception ex)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1