c sharp ——简单绘图程序.doc_第1页
c sharp ——简单绘图程序.doc_第2页
c sharp ——简单绘图程序.doc_第3页
c sharp ——简单绘图程序.doc_第4页
c sharp ——简单绘图程序.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#程序设计课程设计 题 目: 简单绘图程序 学 号: 姓 名: 指导老师: 目 录1 前言12 课题介绍12.1功能要求12.2主要任务12.3运行环境12.4开发语言13 概要设计与详细设计13.1系统流程图23.2详细设计24 关键代码与特色功能的实现44.1关键代码44.2特色功能的实现65 课程设计总结13参考文献131 前言编写一个程序来实现简单绘图。通过单击不同的按钮在画布上绘制不同的图形(包括圆柱、矩形、扇形、圆形、三角形、多边形和曲线)以及对画布上已有的图形进行清除,可以进行已定图形的旋转,并且可以编辑图形线条的颜色。2 课题介绍2.1功能要求(1)用C#语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出系统的流程图;(4)界面友好(良好的人机互交),程序要有注释。2.2主要任务(1)声明一个Graphics类的实例,构造一支画笔和一个矩形区域结构; (2)通过程序语句,给定各个图形,使得单击相应按钮,图形显示在画布上;(3)设计程序使得已显示在画布上的图形得以清除或旋转,并可以设置图形线条的颜色;(4)画出所有模块的流程图;(5)编写代码;(6)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP系统(2)Visual Studio 2005开发环境2.4开发语言C#语言3 概要设计与详细设计3.1系统流程图系统的主要功能包括在画布上绘制曲线、扇形、圆形、圆柱、矩形、三角形和多边形,并对已绘制的图形进行清除,同时能够将已定图形旋转,也可以编辑图形线条的颜色。系统的流程及框架如图3.1所示:简单绘图程序编辑颜色旋转画布清除画布多边形矩形三角形圆柱圆形扇形曲线 分别得到以下图形 曲线 扇形 圆形 圆柱 矩形 三角形 多边形清除已有图形单击各绘图键选定颜色线条颜色改变得到旋转后的图形 图3.1 系统流程图3.2详细设计 声明 Graphics类的实例g: Graphics g; 构造一个矩形区域结构: Rectangle rect = new Rectangle(250, 60, 120, 60); (1)绘制给定圆柱的详细设计 画圆柱上方的椭圆: g.DrawEllipse(new Pen(ForeColor, 2), 60, 10, 90, 50); 画圆柱下方的椭圆: g.DrawEllipse(new Pen(ForeColor, 2), 60, 80, 90, 50); 画两个椭圆之间的连线: g.DrawLine(new Pen(ForeColor, 2), 60, 35, 60, 105); g.DrawLine(new Pen(ForeColor, 2), 150, 35, 150, 105); (2)绘制给定矩形的详细设计 改变矩形区域rect位置: rect.Y = 40; 绘制矩形: g.DrawRectangle(new Pen(ForeColor, 2), rect); (3)绘制给定扇形的详细设计 改变矩形区域rect位置: rect.Y = 160; 绘制扇形(逆时针): g.DrawRectangle(new Pen(ForeColor, 2), rect,-45,-135);(4)绘制给定多边形的详细设计 声明数组: Point pts = new Point(540, 100), new Point(640, 135), new Point(680, 70), new Point(570, 130) ; 绘制多边形: g.DrawPolygon(new Pen(ForeColor, 2), pts); (5)绘制给定曲线的详细设计 声明数组: Point pts = new Point(400, 145), new Point(440, 195), new Point(480,85), new Point(390, 185) ; 绘制曲线: g.DrawPolygon(new Pen(ForeColor, 2), pts); (6)绘制给定圆形的详细设计 绘制圆形: g.DrawEllipse(new Pen(ForeColor, 2), 105, 200, 50, 50);(7)绘制给定三角形的详细设计 声明数组: Point pts = new Point(500, 150), new Point(640, 200), new Point(480,210); 绘制三角形: g.DrawPolygon(new Pen(ForeColor, 2), pts);(8)清除画布的详细设计 重画窗体: this.Refresh(); (9)旋转画布的详细设计 画布旋转: g.RotateTransform(15); (10) 编辑颜色的详细设计 ColorDialog colorDg = new ColorDialog(); if(colorDg.ShowDialog() = DialogResult.OK) ForeColor = colorDg.Color ; 4 关键代码与特色功能的实现4.1关键代码在程序的开头声明 Graphics类的实例g,构造一个矩形区域结构,以便绘制各个给定图形。Graphics g; Rectangle rect = new Rectangle(250, 60, 120, 60);用各个键的触发事件来实现各个已定图形的绘制。 private void button1_Click(object sender, EventArgs e) g.DrawEllipse(new Pen(ForeColor, 2), 60, 10, 90, 50); g.DrawEllipse(new Pen(ForeColor, 2), 60, 80, 90, 50); g.DrawLine(new Pen(ForeColor, 2), 60, 35, 60, 105); g.DrawLine(new Pen(ForeColor, 2), 150, 35, 150, 105); / 绘制圆柱 private void button2_Click(object sender, EventArgs e) rect.Y = 40; g.DrawRectangle(new Pen(ForeColor, 2), rect); / 绘制矩形 private void button3_Click(object sender, EventArgs e) rect.Y = 160; g.DrawPie(new Pen(ForeColor, 2), rect, -45, -135); / 绘制扇形 private void button4_Click(object sender, EventArgs e) Point pts = new Point(540, 100), new Point(640, 135), new Point(680, 70), new Point(570, 130) ; g.DrawPolygon(new Pen(ForeColor, 2), pts); / 绘制多边形 private void button5_Click(object sender, EventArgs e) Point pts = new Point(400, 145), new Point(440, 195), new Point(480,85), new Point(390, 185) ; g.DrawCurve(new Pen(ForeColor, 2), pts); / 绘制曲线 private void button8_Click(object sender, EventArgs e) g.DrawEllipse(new Pen(ForeColor, 2), 105, 200, 50, 50); / 绘制圆形 private void button9_Click(object sender, EventArgs e) Point pts = new Point(500, 150), new Point(640, 200), new Point(480,210); g.DrawPolygon(new Pen(ForeColor, 2), pts); / 绘制三角形通过单击“清除画布”键实现对画布上图形的清除;单击旋转画布再单击各个绘图键便可得到给定图形旋转后的图像。 private void button6_Click(object sender, EventArgs e) this.Refresh(); / 清除画布 private void button7_Click(object sender, EventArgs e) MessageBox.Show( 再次单击各绘图键即可得到旋转后的图形, 操作成功, MessageBoxButtons.OK, MessageBoxIcon.Information); g.RotateTransform(15); / 旋转画布 通过单击“编辑颜色”键实现对画布各控制键颜色的修改,与此同时画布上的图形被清除,再单击各个绘图键,即可得到已选定颜色的图形。private void button10_Click(object sender, EventArgs e) ColorDialog colorDg = new ColorDialog(); if(colorDg.ShowDialog() = DialogResult.OK) ForeColor = colorDg.Color ; / 编辑颜色4.2特色功能的实现(1) 特色功能介绍 单击各个绘图键可以绘制各个已定图形(曲线、扇形、圆形、圆柱、矩形、三角形和多边形);单击“清除画布”键即可实现画布上所有图形的清除;单击旋转画布,再单击各个绘图键,画布上可显示选定图形旋转后的图像;单击“编辑颜色”可以修改图形线条的颜色。(2) 系统运行截图 图4.2.1 系统初始运行图 图4.2.2 所有图形的绘制 图4.2.3 画布的清除 图4.2.4 图形的旋转(以圆柱、圆形为例) 图4.2.5 编辑颜色(3) 源程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace mydraw public partial class draw : Form Graphics g; / 声明Graphics类的实例g Rectangle rect = new Rectangle(250, 60, 120, 60); / 构造一个矩形区域结构 public draw() InitializeComponent(); g = this.CreateGraphics(); private void Form1_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) g.DrawEllipse(new Pen(ForeColor, 2), 60, 10, 90, 50); g.DrawEllipse(new Pen(ForeColor, 2), 60, 80, 90, 50); g.DrawLine(new Pen(ForeColor, 2), 60, 35, 60, 105); g.DrawLine(new Pen(ForeColor, 2), 150, 35, 150, 105); private void button2_Click(object sender, EventArgs e) rect.Y = 40; / 改变矩形区域rect位置 g.DrawRectangle(new Pen(ForeColor, 2), rect); / 绘制矩形 private void button3_Click(object sender, EventArgs e) rect.Y = 160; / 改变矩形区域rect位置 g.DrawPie(new Pen(ForeColor, 2), rect, -45, -135); / 按逆时针绘制扇形 private void button4_Click(object sender, EventArgs e) Point pts = new Point(540, 100), new Point(640, 135), new Point(680, 70), new Point(570, 130) ; / 声明数组 g.DrawPolygon(new Pen(ForeColor, 2), pts); / 绘制多边形 private void button5_Click(object sender, EventArgs e) Point pts = new Point(400, 145), new Point(440, 195), new Point(480,85), new Point(390, 185) ; g.DrawCurve(new Pen(ForeColor, 2), pts); / 绘制曲线 private void button6_Click(object sender, EventArgs e) this.Refresh(); / 重画窗体 private void button7_Click(object sender, EventArgs e) MessageBox.Show(再次单击各绘图键即可得到旋转后的图形, 操作成功, MessageBoxButtons.OK, MessageBoxIcon.Information); g.RotateTransform(15); / 旋转画布 private void button8_Click(object sender, EventArgs e) g.DrawEllipse(new Pen(ForeColor, 2), 105, 200, 50, 50); /绘制圆形 private void button9_Click(object sender, EventArgs e) Point pts = new Point(500, 150), new Point(640, 200), new Point(480,210); g.DrawPolygon(new Pen(ForeColor, 2), pts); /绘制三角形 private void button10_Click(object sender, EventArgs e) ColorDialog colorDg = new ColorDialog(); if(colorDg.ShowDialog() = DialogResult.OK) ForeColor = colorDg.Color ; 5 课程设计总结通过此次课程设计,我学到了很多东西。做这个简单绘图程序,我知道了绘图的有关方法,例如如何绘制椭圆、圆柱、曲线、多边形、扇形、三角形和圆形等基本图形。此次设计中困扰我的一大难题是:如何才能让图形旋转后不旋转出画布?为此曾多次改了矩形区域以及各个已定图形的大小,在多次改动均未达到期望的时候,我甚至更改了画布的大小。最后,虽然几次旋转并没超越画布,但总体上还是有诸多不足,旋转次数太多终究还是会超出画布空间大小。另外,设置图形线条的颜色也难倒了我,觉得很简单,可实际做起来总会有错误,我查了百度和一部分书籍,还是没能解决,最后在同学的指导下,才得以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论