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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于C#多机联合绘图软件的实现毕业设计论文 精品.docx

1、基于C#多机联合绘图软件的实现毕业设计论文 精品 毕业设计(论文)题目: 基于C#多机联合绘图软件的实现 系 别 信息工程系专业名称 电子信息工程二O一三 年 五 月 学士学位论文原创性声明本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:2013年5月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规

2、定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌航空大学科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 作者签名: 日期:2013年5月 日导师签名: 日期:2013年5月 日基于C#多机联合绘图软件的实现摘要:随着计算机技术的发展和人们的需求,越来越多的人们选择计算机绘图软件,了解传统的绘图软件的起源、现状和发展趋势。再对现有的传统的绘图软件进行分析比较的基础上,提出了基于局域网的绘图软件的功能需求,多机联合绘图系统印证了这一需求,接下来讨论了基于局域网绘图软件的开发过程,

3、着重分析了多机联合制图通信技术,并给出了详细的实现方法。最后对本次绘图系统开发进行总结。随着计算机性能的提高和计算机视觉理论及技术的发展,这种技术必将日趋成熟。网络技术是计算机技术和通信技术相互渗透而又紧密结合的产物。计算机绘图技术作为计算机应用的一个重要方面。本次毕业设计的多机联合绘图系统分为类的设计和联机操作两大部分。其中类的设计主要是由绘图对象类设计和工具类设计,用Microsoft Visual Studio 2008开发工具软件编程来实现每一个部分,最后实现多机联合绘图软件,多台计算机联合制图。关键词:多机联合、图像处理、Microsoft Visual Studio 2008指导老

4、师签名:Based on the c # implementation of multi-joint drawing softwareStudent name : Cai Xiang Class: 0982052Supervisor: Fang FangAbstract: With the development of computer technology and peoples needs, an increasing number of people choose computer drawing software, learn traditional origins, current

5、situation and development trend of drawing. Drawing on existing legacy software based on a comparison of proposed functional requirements based on local area network drawing, confirms this need joint drawing system, LAN mapping software were discussed throughout the rest of the development process,

6、focused on a number of joint cartographic communication techniques, and gives detailed implementation methods. Final summary of this mapping system developed by. As computer performance increase and development of theory and technology of computer vision, the technology will mature. Network technolo

7、gy is the mutual penetration of computer technology and communication technology and seamless integration of products. Computer graphics technology as an important aspect of computer applications. This multi-combined graduation design class design, and online mapping system divided into two parts. W

8、here the class design was designed by drawing object classes and tools to design, programming with Microsoft Visual Studio 2008 software development tools to implement every part, finally achieving a combined drawing software, multiple computer merger system map.Keyword:Combined machine Image Proces

9、sing Microsoft Visual Studio 2008Signature of Supervisor:1.2 系统功能调查. .2 1.3系统目标. . .32.3架构设计.42.3.1 绘图对象类设计. .42.3.2工具类设计. .52.3.3其他类设计.62.4主机和附机.63.4其他功能的实现. .28 3.4.1编辑功能. .28 3.4.2导出图像. .29 3.4.3图像的打印和预览. .29前言当今信息社会以多媒体为代表的信息技术产业的发展和应用对人类社会的影响和作用愈来愈明显,愈来愈强,也就是说,图形图像技术的飞速发展也是必然趋势,掌握图形图像处理技术对现代人来说

10、也是很必要的。随着计算机技术的发展和人们的需求,越来越多的人们选择计算机绘图软件,了解传统的绘图软件的起源、现状和发展趋势;在对现有的传统的绘图软件进行分析比较的基础上,提出了基于局域网的绘图软件的功能需求,接下来讨论了基于局域网绘图软件的开发过程,着重分析了多机联合制图通信技术,并给出了详细的实现方法。最后对本次绘图系统开发进行总结。随着计算机性能的提高和计算机视觉理论及技术的发展,这种技术必将日趋成熟。本次毕业设计的多机联合绘图系统分为类的设计和联机操作两大部分。其中类的设计主要是由绘图对象类设计和工具类设计,用Microsoft Visual Studio 2008开发工具软件编程来实现

11、每一个部分,最后实现多机联合绘图软件,多台计算机联合制图。第一章 需求分析1.1 应用现状调查目前,大多数绘图系统都是单体运行的,而多机联合绘图系统可实现多台计算机同时对图形图像进行处理分析,在对现有的传统的绘图软件进行分析比较的基础上,提出了基于局域网的绘图软件的功能需求,主要可用于网络布线,及网络通信,因此研究及开发这一种技术必将日趋成熟。1.2系统功能调查整个系统从总体上分为类的设计,联机操作两大部分,系统应实现的功能如下图1.1系统功能模块图1.3系统目标利用Microsoft Visual Studio 2008通过类的设计实现单机绘图,该系统实现矩形,曲线,直线,文字,图像的绘制,

12、再通过联机操作,实现主机和附机的连接,最后实现多机联合绘图。第二章 概要设计2.1系统分析 本次设计的多机联合绘图系统是一个基于C#实现多台计算机间协作的操作系统。多台计算机在本地的局域网络或者固定IP的Internet上制作同一张图,制作时将计算机分为主机和附机。任何一台计算机都可以作为主机。将某台计算机作为主机后,连接到该机的其他同时制图的计算机便只能作为附机。 不论是主机还是附机,每个联合制作的计算机看到的设计界面都是一样的。任何一台计算机添加或修改一个图形时,其结果都会立即反映到其他计算机上。系统要求必须要有一台计算机作为主机,并且只能有一个主机。只有当主机进入制作界面之后,其他附机才

13、能进入制作界面。当主机退出制作界面之后,所有的附机将无法继续制作。多机联合绘图系统以几种具有代表性的图形图像的绘制方法为主,并不是实现所有图形图像的绘制。2.2 Microsoft Visual Studio 2008开发工具简介本次设计应用编程工具是Microsoft Visual Studio 2008,它是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Stu

14、dio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。2.3架构设计在多机联合绘图系统中,为了简化起见,只实现矩形,曲线,文字,直线和图像等基本图形图像的绘制。2.3.1绘图对象类设计 为了统一管理各种绘图对象,可以将要绘制的对象抽象成一个抽象基类DrawObject,其他的绘制对象则从DrawObject继

15、承,在扩充类中,通过重写DrawObject类的属性和方法,即可实现针对特定的图形图像的绘制。 各绘图对象类之间的关系如图2.1所示。 在图2.1中,DrawObject是所要绘制对象的抽象基类,在该类中定义绘图对象的公共属性和方法。图2.1绘制对象间的继承关系 类TrackRectangle,TrackText,TracCurve都是从DrawObject继承。TrackRectangle,TrackText,TracCurve这三个类分别表示矩形,文字,曲线的封装类,这三个类中均不实现绘制方法,而是由其派生类实现。TrackRectangle表示可以从规则矩形特征中抽取句柄的所有对象的基类

16、,如矩形,椭圆,图像等。在这个列子中,DrawMyRectangle从TrackRectangle继承表示矩形,DrawMyImage从TrackRectangle继承表示绘制图像。如果需要绘制椭圆,只需要从TrackRectangle派生即可。TrackCurve是所有以点作为句柄特征的所有曲线类的基类。曲线可以有带有箭头的曲线,不带箭头的曲线,封闭曲线以及其他特殊曲线等。DrawMyCurve从TrackCurve继承表示绘制的是带有箭头的曲线。TrackText是所有文字绘制的基类,DrawMyText类从TrackText实现文字的绘制,如果需要其他效果的文字,一样可以从TrackTe

17、xt类派生。2.3.2 工具类设计当用户使用鼠标拖放绘制,选中和移动对象时,都会用到窗体或控件MouseMove,MouseDown,MouseUp事件。对于不同的对象,这些鼠标事件中的实现代码也不尽相同,为此需要提供一个实现图形图像鼠标控制基类ToolObject.当用户通过鼠标移动图像,绘制矩形,绘制文本,绘制曲线,绘制直线的操作时,将这些类从ToolObject类派生,然后在扩充类中重写基类对应的方法即可。类ToolRectangle,ToolCurve,ToolText,ToolImage,ToolPointer分别表示绘制矩形,曲线,文字,图像和平移图形图像时对应的鼠标控制操作类,他

18、们均从ToolObject派生。各类之间的关系如图2.2所示图2.2工具类间的继承关系2.3.3其他类设计 除了绘图对象类和工具类以外,系统中还包括公共类以及进行主机和附机通信的类。具体如下。(1) ObjectID类提供为图形图像对象创建ID的方法。(2) CC类提供系统公用的属性和方法定义。(3) GraphicsList类保存绘制对象的列表,同时实现绘图对象的查找,删除,选择等功能。绘制对象列表由List类型的字段来进行维护。(4) User类封装与服务器通信的客户端信息。 (5) MyClient类封装附机的相关信息,提供附机向主机发送信息以及从主机接收信息的相关处理方法。(6) My

19、Server类封装主机的相关信息,提供主机向附机发送信息以及从附机接收信息的相关处理方法(7) MyService类封装公用的数据处理方法,提供绘制和平移对象的方法2.4主机与附机在主机和附机的通信中,主机收到附机的发送的字符信息后,需要解析字符串的含义,并确定主机需要执行的操作。对于附机来说也是一样的道理,字符串分为命令部分和参数部分,命令部分和参数部分之间以及参数部分的各个参数之间均用逗号分隔。第三章 系统详细设计3.1初始模块初始界面主要显示的就是一个初始化界面,它是整个系统的第一个模块,其相应的窗体界面见图3.1:图3.1 多机联合绘图初始化界面这是PreMainForm窗体,在多机联

20、合绘图系统中,主机和附机都是通过发送一系列的命令后,再通过响应来实现操作的。a. 附机发送给主机的命令:(1)通过发送Login命令,附机与主机建立连接后,进入操作界面。主机接受后,返回WelcomeLogin命令,并把当前的图像图像字节返回给附机。(2)通过发送Logout命令,附机退出制作。主机收到此命令后,清除附机对应的信息,结束与此附机对应的线程,同时把命令发送给其他附机。(3)通过GetID命令来获取图形图像的唯一的ID.b. 主机发给附机的命令:(1)通过ID命令,主机返回给图像图形的ID(2)通过Logout命令,主机退出制作 c. 主机IP的确立核心代码如下: IPAddres

21、s ip; if (IPAddress.TryParse(textBoxServer.Text, out ip) = false) toolStripLabel1.Text = 主机IP地址格式不正确,请重新输入!; buttonOK.Enabled = true; return; else toolStripLabel1.Text = 正在连接主机,请稍等; backgroundWorker1.RunWorkerAsync(); while (backgroundWorker1.IsBusy) if (backgroundWorker1.CancellationPending = false

22、) Application.DoEvents(); 3.2 绘图模块设计此模块是整个系统的核心,实现主要的功能:矩形,曲线,直线,文字,图像的基本绘制,以及删除,打印,导出图像的基本功能。图3.2多机联合绘图程序 其主要通过菜单来实现下跳到其他窗体,通过菜单实现链接不同窗体 其核心代码如下; public partial class MainForm : Form public MainForm() InitializeComponent(); this.SuspendLayout(); CC.palette = new Palette(); CC.palette.Dock = DockSty

23、le.Fill; this.Controls.Add(CC.palette); this.ResumeLayout(); SetUserState(); CC.myService.mainForm = this; if (CC.userState = UserState.Server | CC.userState = UserState.SingleUser) CC.palette.DeserializeObject(CC.backupFileName); else CC.me.SendToServer(Login); 3.21矩形的绘制(1)在解决方案管理器中,添加一个名为DrawObjec

24、t.cs的类,表示所有图形图像的基类,代码定义如下;public abstract class DrawObject private bool selected; / 是否选择了该对象 public bool Selected get return selected; set selected = value; protected Color penColor; / 画笔颜色 public Color PenColor get return penColor; set penColor = value; protected int penWidth = 2; / 画笔宽度 public int

25、 PenWidth get return penWidth; set penWidth = value; protected int id; public int ID get return id; set id = value; 然后再添加一个名为DrawMyRectangle的类文件,表示要绘制的矩形对象,让该类从DrawObject继承,并重写DrawObject类的Draw方法。主要代码如下;class DrawMyRectangle : TrackRectangle public DrawMyRectangle() public DrawMyRectangle(int x, int

26、y, int width, int height, Color penColor, int id) this.objRectangle = new Rectangle(x, y, width, height); this.penColor = penColor; this.id = id; public override void Draw(Graphics g) Pen pen = new Pen(penColor); g.DrawRectangle(pen, objRectangle); pen.Dispose(); (2)在解决方案管理器中,添加一个名为CC.cs的类,提供系统公共的属性

27、和方法。CC类中提供了为图形图像对象分配ID的方法。具体代码请看附录的源代码;(3)分别添加名为ToolObject.cs和ToolRectangle.cs的类文件,其中,ToolObject表示封装鼠标事件的操作基类,ToolRectangle实现绘制矩形是的鼠标操作。ToolObject类的主要代码如下;class ToolObject protected bool isNewObjectAdded = false; public virtual void OnMouseDown(Palette palette, MouseEventArgs e) isNewObjectAdded = f

28、alse; CC.SetNewID(); public virtual void OnMouseMove(Palette palette, MouseEventArgs e) if (isNewObjectAdded = false) return; Point point = new Point(e.X, e.Y); int index = CC.myService.FindObjectIndex(CC.ID); if (e.Button = MouseButtons.Left) DrawObject w = palette.graphicsindex; w.MoveHandleTo(point, 5); palette.Refresh(); public virtual void OnMouseUp(Palette palette, MouseEventArgs e) palette.Capture = false; palette.Refresh(); isNewObjectAdded = false; / / 添加新的图形对象 / protected void AddNewObject(Palette palette, DrawObject w) palette.graphics.UnselectAll();

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

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