简单画图程序的设计
- 格式:wps
- 大小:321.17 KB
- 文档页数:28
面向对象程序设计课程设计报告设计题目:简单画图程序的设计学院:信息工程学院专业:计算机科学与技术(交通)学号:201224020326姓名:房战锋同组同学学号:201224020325指导教师:张少博2013 年12 月24 日目录第一章:设计目的及内容 (2)1.1【设计目的】 (2)1.2【设计内容】 (2)第二章:基本功能概述 (3)2.1【工程的新建】 (3)2.2【单文档简介】 (4)2.3【添加消息响应函数】 (5)2.4【资源】 (5)2.5【设备环境】 (6)第三章:设计思路 (6)第四章:软件设计 (7)4.1【设计步骤及关键代码】 (7)4.1.1【点、直线、矩形、椭圆的绘制】 (9)4.1.2【连续线及扇形的绘制】 (11)4.1.3【画刷】 (12)4.2【设置对话框】 (14)4.3【颜色】 (14)4.4【打开与保存】 (15)第五章:结论与心得体会 (16)参考文献: (17)附录: (18)【调试报告】 (18)【测试结果】 (18)【关键代码】 (18)第1章:设计目的及内容1.1【设计目的】1 学习Visual C++的MFC开发程序的步骤。
2 综合运用所学的类、继承和多态的知识。
3 进一步掌握程序的调试方法。
1.2【设计内容】1利用MFC的向导,创建基于单文档的应用程序;2 编程实现,绘制线、圆、矩形的功能;3 能够设定当前要画的图形样式(最少为以上3种)和图形颜色(最少能够设为以下4 种颜色:黑、红、绿、蓝)。
4 当窗口重绘后,还能保持原来的图形。
5 选做1:能够选中某些已绘制的图形,并删除之。
6 选做2:能够保存已绘制的图形,下次打开时恢复原状。
第2章:基本功能概述2.1【工程的新建】打开Microsoft Visual C++ 6.0 —> 点击File —> New 在Projects中选择MFC AppWizard (exe) ;在Project name中输入工程的名字Graphic,在Location中选择工程存放的路径。
c 画图程序课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和操作,学会使用画图程序进行简单的图形绘制。
通过本节课的学习,学生能够理解C语言的基本概念,熟练使用画图程序进行图形设计,培养编程思维和动手能力。
具体来说,知识目标包括:1.了解C语言的基本语法和数据类型。
2.掌握画图程序的基本功能和操作。
技能目标包括:1.能够编写简单的C语言程序。
2.能够使用画图程序进行基本的图形绘制。
情感态度价值观目标包括:1.培养学生的编程兴趣,提高学习的积极性。
2.培养学生团队合作和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法和画图程序的使用。
具体安排如下:1.C语言基本语法:数据类型、变量、运算符、控制语句等。
2.画图程序的使用:图形绘制、颜色设置、图形属性等。
教学过程中,将结合具体的案例和练习题,让学生在实际操作中掌握C语言的基本语法和画图程序的使用。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解C语言的基本语法和画图程序的使用方法。
2.案例分析法:分析具体的编程案例,让学生在实际操作中掌握知识。
3.实验法:让学生动手编写C语言程序,使用画图程序进行图形绘制。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的编程能力和动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:C语言程序设计基础。
2.参考书:C语言编程实例解析。
3.多媒体资料:C语言语法讲解视频、画图程序操作演示视频。
4.实验设备:计算机、画图程序软件。
通过以上教学资源的运用,帮助学生更好地理解和掌握C语言的基本语法和画图程序的使用,提高学生的学习效果。
五、教学评估本节课的教学评估将采取多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。
MFC画图程序步骤MFC(Microsoft Foundation Class)是一种用于开辟Windows应用程序的C++类库。
在MFC中,我们可以使用GDI(Graphics Device Interface)来创建和操作图形。
下面是使用MFC创建一个简单的画图程序的步骤。
步骤1:创建一个新的MFC项目首先,打开Visual Studio并选择创建一个新的项目。
在项目类型中,选择Visual C++ -> MFC,然后选择MFC应用程序类型。
输入项目名称并选择保存的位置。
在应用程序类型中,选择“单文档”或者“多文档”视图,具体根据你的需求而定。
点击“确定”按钮创建项目。
步骤2:设计用户界面在MFC应用程序中,用户界面是通过对话框资源来设计的。
在资源视图中,双击IDD_DIALOG(或者其他对话框资源)以打开对话框编辑器。
在对话框编辑器中,你可以添加按钮、文本框、菜单等控件来设计你的用户界面。
在画图程序中,你可以添加一个画布控件来显示绘制的图形。
步骤3:添加绘图功能在MFC中,你可以使用GDI来进行绘图操作。
打开你的对话框类的头文件(例如,CMyDialog.h),添加以下头文件引用:#include <afxwin.h>#include <afxext.h>#include <afxdisp.h>在对话框类的源文件(例如,CMyDialog.cpp)中,添加以下代码来处理绘图操作:```void CMyDialog::OnPaint(){CPaintDC dc(this); // 用于绘制的设备上下文// 在这里进行绘图操作dc.Rectangle(100, 100, 200, 200); // 绘制一个矩形dc.Ellipse(300, 100, 400, 200); // 绘制一个椭圆}```步骤4:处理绘图事件在对话框类的消息映射中添加对绘图事件的处理。
java画图课程设计一、教学目标本节课旨在让学生掌握Java基本绘图方法,能够使用Java编写简单的图形界面程序。
1.了解Java绘图的基本概念和方法。
2.掌握Java中常用的绘图类和方法。
3.理解图形界面程序的设计原理。
4.能够使用Java编写简单的图形界面程序。
5.能够灵活运用Java绘图方法,实现基本的图形绘制。
6.能够根据需求,设计并实现简单的图形界面程序。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。
2.培养学生解决问题的能力和创新精神。
3.培养学生团队协作和交流的能力。
二、教学内容本节课的教学内容主要包括Java绘图的基本概念和方法,以及图形界面程序的设计原理。
1.Java绘图基本概念和方法。
2.Java中常用的绘图类和方法。
3.图形界面程序的设计原理。
4.实例演示和练习。
三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解Java绘图的基本概念和方法,以及图形界面程序的设计原理。
2.案例分析法:通过分析典型案例,让学生理解和掌握Java绘图的方法和技巧。
3.实验法:让学生通过实际操作,动手编写Java程序,巩固所学知识。
四、教学资源1.教材:《Java程序设计》。
2.参考书:《Java绘图教程》。
3.多媒体资料:PPT课件。
4.实验设备:计算机。
五、教学评估本节课的评估方式包括平时表现、作业和考试。
1.平时表现:通过课堂参与、提问和回答问题等方式,评估学生在课堂上的积极性和主动性。
2.作业:布置相关的绘图程序练习,评估学生对Java绘图方法的掌握程度。
3.考试:期末考试中包含Java绘图相关的题目,评估学生对Java绘图的全面理解和应用能力。
六、教学安排本节课的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解Java绘图的基本概念和方法。
2.教学时间:每节课45分钟,其中30分钟用于讲授和案例分析,15分钟用于实验和实践。
3.教学地点:计算机实验室,确保学生能够直接进行绘图程序的编写和运行。
初识“画图”程序教学设计[教学目的与要求]1.知识与技能(1)学习启动与退出“画图”程序的方法。
(2)了解“画图”窗口的组成,并初步认识工具箱中各种工具。
(3)学制“铅笔”、“刷子”工具的使用方法。
(4)掌握保存文件的方法。
2.过程与方法在欣赏画图作品和学习“铅笔”、“刷子”工具的使用方法。
3.情感态度与价值观通过对画图作品的欣赏和对“画图程序的操作,进一步培养学习信息技术的兴趣和热情。
4.行为与创新学习保存作品的方法,进一步增强学生的文件保存意识。
[教学重点与难点]启动和退出画图程序的方法。
“画图”窗口特有的组成。
[教学过程]一、复习旧知,迁移导入。
1.(教师机以学生绘画作品设置为背景)同学们,觉得老师的桌面背景怎么样?为什么?老师告诉大家,这幅图躲藏在这个文件夹中。
我们刚学过设置桌面背景,你能设置这个图片为桌面背景吗?2.刚才同学们在设置图片的时候看到在这个文件夹中看到很多好看的图片,我们一起来看一看。
觉得这些图怎么样?这些图不是用画笔画出来的,不是画在纸上的,而是直接在计算机上用“画图”这个程序画出来的,神奇吧,没有纸笔照样能画出美丽的图画。
想不想认识“画图”这个朋友?如果你和他成为好朋友,画出的画可能比这些还要漂亮。
二、新授1. 启动程序听到过这个朋友的名字过吗?画图,在什么地方见过?他躲起来了,找一找,能把他找出来吗?学生演示。
如学生找不出来,教师演示打开“画图”程序。
让这个朋友出现在我们的身边,学生操作打开程序。
我们每一次都要经过这么多步骤才能找到画图朋友,有没有简单一点的方法。
——学习建立快捷方式。
2.认识画图窗口这个朋友已经来到我们中间了,想不想和他交朋友?先跟他打个招呼:画图,你好!见到他,有没有觉得眼熟?长得和谁有点像?哪儿长得像?哪儿不像?像:标题栏、菜单栏、状态栏不像:工具箱——相当于文具盒,装着画画的各种笔、工具等。
画图区——画画的纸颜料盒——画画的颜料画图告诉我们,工具箱中的各种工具是它最重要,最宝贝的东西,那我们就来认识一下好不好。
J A V A简单画板程序设计实验报告As a person, we must have independent thoughts and personality.JAVA期末画板实验报告课程题目:运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。
设计思想:1.进行界面设计2.进行算法实现3.运行调试4.总结问题设计过程:A.界面设计B.新建一个Jframe容器,然后定义一个panel( Panel convas2),convas2是工具栏。
用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。
完成界面设计。
add(canvas2,;Panel canvas2 = new Panel();添加工具按键Panel canvas2 = new Panel();Button btn1 = new Button("直线");Button btn2 = new Button("椭圆");Button btn3 = new Button("矩形");Button btn4 = new Button("清除");Button btn5 = new Button("画笔");Button btn6 = new Button("橡皮");Choice choice = new Choice();Choice choice1 = new Choice();(choice);(choice1);(btn1);(btn2);(btn3);(btn4);(btn5);(btn6);在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。
1.画笔的大小:("1");("3");("5");("7");("9");2.画笔颜色("黑色");("蓝色");("红色");("黄色");("绿色");3展示画板C.算法实现运用画板,首先要对工具栏按键和鼠标进行监听,然后对监听进行响应。
在Python中用turtle模块画图教学设计引言:Python是一种强大而易于学习的编程语言,可以用于多种应用领域,包括图形设计。
其中,turtle模块是Python的一个图形库,可以实现简单而又有趣的图形绘制。
本文将以turtle模块为基础,设计一个Python图形绘制的教学活动,旨在通过学习和实践,帮助学生了解Python的基本语法和图形设计的基本原理。
1. 引导学生学习Python基本语法:首先,介绍Python的基本语法,并引导学生通过交互式解释器编写和执行简单的Python程序。
这可以帮助学生熟悉Python的基本操作和语法规则。
2. 介绍turtle模块的基本概念和操作:解释turtle模块是Python的一个可视化绘图工具,可以通过简单的命令实现图形的绘制。
介绍turtle模块的基本概念,如画布、乌龟、坐标系等,并讲解turtle模块的基本操作,如前进、后退、左转、右转等。
3.设计一个简单的图形绘制实例:选择一个简单的图形,如正方形,引导学生在交互式解释器中实现图形的绘制。
首先,学习如何绘制一个边长为100的正方形。
然后,学习如何通过循环语句绘制多个正方形,可以控制正方形的数量和位置。
4.引导学生进一步思考和探索:通过以上实例,学生已经初步了解了turtle模块的基本操作和图形绘制的原理。
接下来,引导学生思考如何使用turtle模块绘制其他形状,如三角形、五角星等。
同时,鼓励学生自己尝试编写程序实现所思考的图形。
5.设计一个实践项目:为了巩固学生对turtle模块的理解和应用,设计一个实践项目,要求学生使用turtle模块绘制一个有趣的图形,如一朵花、一只动物等。
学生可以自由发挥,展示自己的创造力和想象力。
6.结语:通过以上教学设计,学生可以通过实践了解Python的基本语法和turtle模块的基本操作,锻炼编程思维和创造力。
同时,学生还可以培养对图形设计和计算机编程的兴趣,并为以后学习更高级的图形库和框架奠定基础。
第5课初识“画图”程序湖溪镇中心小学杜巧航一、教材分析本课是浙江摄影出版社小学三年级上册信息技术第5课。
本课教材的安排紧紧围绕完成任务“画小树”的范画来安排。
“画图”程序本是一个标准的WindoWS软件,是学生首次接触的应用软件和小学生必须掌握的信息技术入门材料。
《初识“画图”程序》这一节课是本单元教学的入门课程。
“画图”在教科书中的定位是“能够使用常用绘图工具进行简单的创意绘画。
本课的“画图”程序教学首先安排了“打开画板”打开“画图”程序,并对界面进行介绍。
对“画图”界面中4个部分的名称,应当让学生会认、能说。
这也是教师以后上课规范术语的需要。
“找到工具”是让学生通过尝试,找到绘画所需要的工具。
完成任务应当是“要什么,找什么”,而不是“有什么,用什么”。
“用好工具”主要解决工具的不同选项和颜色的问题,然后初步完成范例。
“修改图画”是绘画过程中的一部分,一般可以让学生在学习绘画过程中遇到问题时及时解决。
二、学情分析学生已经接触了一段时间的计算机,但是还是第一次接触计算机的应用软件。
本班的学生,在家的时候就已经会用电脑,所以基础还是有的,学习新的软件吸收能力比较强。
还有一些学生已经在家里用过画图软件了,所以上课的时候可以让他们试着来打开画图程序。
这节课让学生动手试着画画,学生对美术课的画画就很喜欢,现在在电脑上画就更感兴趣了。
让学生放手尝试,学生激情很高,学习氛围会比较浓烈。
三、教学目标1.巩固通过“开始”按钮打开程序的方法,认识“画图”程序界面。
2.通过探究,了解“铅笔”“刷子”“橡皮”等绘图工具的特点。
3.通过“保存文件”,学会把文件保存在默认文件夹中的操作。
4.感受计算机绘画的乐趣,激发计算画的兴趣。
四、教学重难点教学重点:认识“画图”程序界面,了解“铅笔”、“刷子”和“橡皮”等绘图工具的特点0教学难点:1.探究“铅笔”“刷子”“橡皮”等绘图工具的特点。
2.保存时文件名的确定和输入。
五、教学策略与方法讲授法、演示法六、课前准备准备好范画、制作画图软件课件七、课时安排1课时八、教学过程(一)看图猜成语师:同学们,有没有玩过看图猜成语的游戏啊?今天我们一起来玩一玩,看看谁的脑筋转得快。
目录1.基本功能描述 ....................................................................................................... - 1 -2.设计思路 ............................................................................................................... - 1 -3.软件设计 ............................................................................................................... - 4 -3.1 设计步骤 .................................................................................................... - 4 -3.2 界面设计 .................................................................................................... - 9 -3.3 关键功能的实现 ........................................................................................ - 9 -4.结论与心得体会 ................................................................................................. - 10 -5.参考文献 ............................................................................................................. - 11 -6.思考题 ................................................................................................................. - 11 -7.附录 ..................................................................................................................... - 12 -7.1 调试报告 .................................................................................................. - 12 -7.2 测试结果 .................................................................................................. - 13 -7.3 关键源代码 .............................................................................................. - 15 -简单画图程序1.基本功能描述1)设计一个程序可完成绘制直线,矩形和椭圆的功能。
python画图程序课程设计一、教学目标本课程的学习目标旨在让学生掌握Python基本画图程序的编写方法,培养学生的编程思维和实际操作能力。
具体目标如下:1.知识目标:使学生了解Python画图程序的基本概念和原理,包括turtle库的使用方法,以及基本绘图函数如circle()、dot()等。
2.技能目标:培养学生能够运用Python编写简单的画图程序,如绘制图形、绘制函数图像等。
同时,培养学生能够通过查阅资料和文档,自主学习和解决问题的能力。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,增强其对科学和技术的热爱,培养其创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Python画图程序的基本概念和原理,如turtle库的使用方法。
2.基本绘图函数的学习,如circle()、dot()等。
3.典型画图程序的编写和分析,如绘制图形、绘制函数图像等。
4.实际操作练习,让学生通过编写程序,实现自己的创意画图。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
1.讲授法:用于讲解Python画图程序的基本概念、原理和绘图函数。
2.案例分析法:通过分析典型画图程序,让学生了解实际应用中如何运用Python进行画图。
3.实验法:让学生动手编写程序,进行实际操作,培养其实际操作能力和解决问题的能力。
四、教学资源本课程的教学资源主要包括以下几个部分:1.教材:Python编程基础教材,用于为学生提供理论知识的学习。
2.参考书:Python画图程序相关书籍,用于为学生提供更多的学习资料。
3.多媒体资料:包括教学PPT、视频教程等,用于为学生提供生动、直观的学习资源。
4.实验设备:计算机、投影仪等,用于进行实验教学,让学生动手实践。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估其对课程内容的理解和掌握程度。
Windows XP画图程序的使用教学设计1. 引言Windows XP操作系统中自带了一个简单而实用的画图程序,可以满足用户对于基本绘图需求的同时,也便于初学者上手。
本文将针对Windows XP画图程序的使用进行详细的教学指导。
2. 画图程序的基本介绍Windows XP画图程序是一款基础的绘图软件,它具备了绘制线条、填充颜色、绘制基本图形等功能。
用户可以使用鼠标进行操作,也可以通过菜单栏选择相应的功能实现绘图操作。
3. 画图程序的基本操作3.1 打开画图程序在Windows XP操作系统中,可以通过以下步骤打开画图程序:1.单击“开始”按钮。
2.选择“程序”。
3.选择“附件”。
4.选择“画图”。
3.2 画板界面介绍打开画图程序后,将出现一个空白的画板界面。
画板界面具有如下特点:•顶部菜单栏:包含了文件、编辑、格式、查看等菜单项,用户可以通过点击不同菜单项来执行相应的操作。
•工具栏:位于画板界面的上方,包含了绘制线条、选择图形、填充颜色等工具按钮,用户可以通过点击不同的工具按钮选择相应的绘图工具。
•绘图区域:位于画板界面的中央,用户可以在该区域进行绘图操作。
•属性栏:位于画板界面的右侧,包含了调整线条颜色、线条粗细、填充颜色等属性选项,用户可以通过调整属性来修改绘图效果。
3.3 绘制基本线条3.3.1 使用画笔工具绘制线条是画图程序的基本功能之一,通过以下步骤可以使用画笔工具绘制线条:1.在工具栏中找到画笔工具按钮。
2.单击画笔工具按钮,在属性栏中可调整线条颜色和线条粗细。
3.在绘图区域中按住鼠标左键,同时移动鼠标,即可绘制线条。
3.3.2 使用直线工具除了使用画笔工具绘制线条外,也可以使用直线工具绘制直线。
使用直线工具的步骤如下:1.在工具栏中找到直线工具按钮。
2.单击直线工具按钮,在属性栏中可调整线条颜色和线条粗细。
3.在绘图区域中单击鼠标左键,然后拖动鼠标,即可绘制直线。
3.4 绘制基本图形3.4.1 绘制矩形绘制矩形是画图程序的常用功能之一,通过以下步骤可以绘制矩形:1.在工具栏中找到矩形工具按钮。
一、选题背景:画图程序,通过画图中的功能绘制出美丽的图案。
二、设计思想:利用数学三角函数制作山峰和花朵出一条曲线、用画圆函数绘制太阳的形状、再进行颜色填充用绘制直线的函数来绘制比较粗的光线、用矩形函数画出矩形的边框、再画地球、直线画赤道、弧线画南北极和钟表的刻度盘。
三、流程图:四、程序清单:#include"graphics.h" /*调用图形库函数*/#include"math.h" /*调用数学函数*/#include"stdio.h" /*调用标准I/O函数*/#define PI 3.141596 /*宏定义PI字符串*/main() /*主函数*/{float i,x,y; /*定义单精度浮点型变量i,x,y*/int gdriver=DETECT,gmode,a=1; /*定义整型变量gdriver,gmode*/initgraph(&gdriver,&gmode,"d:\\tc"); /*定义变量后,初始化图形系统*/cleardevice();setbkcolor(a); /*背景颜色*/printf("\n");printf("\n"); /*C 语言图形函数*/printf("\n");printf(" the following math functions were used in the main function.\n");printf(" setbkcolor(int color);\n"); /* 背景颜色*/printf(" setcolor(int color);\n"); /* 画笔颜色*/printf(" putpexel(x,y,color);\n"); /* 画像素点*/printf(" line(x1,y1,x2,y2)\n"); /* 直线函数*/printf(" rectangle(xl,yt,xr,yb)\n");; /* 矩形函数*/printf(" arc(x,y,as,ae,r)\n"); /* 圆弧函数*/printf(" circle(x,y,r)\n"); /*圆形函数*/printf(" ellipse(x,y,as,ae,rx,ry)\n"); /* 椭圆函数*/printf("\n"); /* 按任意键开始演示*/setcolor(2);setlinestyle(0,0,3);rectangle(4,4,635,475); /*绘制矩形框*/getch();cleardevice();printf("\n"); /* 模拟手工画图*/printf("\n"); /* 函数曲线图形*/setcolor(3);setlinestyle(3,3,3);rectangle(4,4,635,475); /*绘制图纸边框*/for (i=0;i<=2*PI;i+=PI/99999){putpixel(40*i,170-21*i*sin(1.6*i),2);putpixel(40.3*i,170-22*i*sin(1.6*i),3);putpixel(40.6*i,170-23*i*sin(1.6*i),10);}for (i=0;i<=2*PI;i+=PI/99999) /*绘制花朵*/{putpixel(118-15*cos(4*i)*cos(i),160-15*cos(4*i)*sin(i),14);putpixel(118-25*cos(4*i)*cos(i),160-25*cos(4*i)*sin(i),13);putpixel(118-35*cos(4*i)*cos(i),160-35*cos(4*i)*sin(i),10);}for (i=0;i<=PI;i+=PI/99999){putpixel(320-315*cos(i),360-95*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-96*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-97*sin(i),11); /*绘制拱桥*/ }for (a=70;a<=570;a+=50)for (i=0;i<=PI;i+=PI/9999){putpixel(a-25*cos(i),360-40*sin(i),11); /*绘制桥*/}}for (x=0;x<=640;x+=0.001){putpixel(8*x,380-8*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=600;x+=0.001){putpixel(10*x,405-10*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=560;x+=0.001){putpixel(12*x,430-12*sin(x),9); /*绘制曲线水流*/}for(x=60;x<=80;x+=0.01){ellipse(270,360,180 ,0,160-x,25);}for (x=0;x<=520;x+=0.001){putpixel(8*x,455-8*sin(x),9); /*绘制曲线水流*/}setlinestyle(0,0,1);setfillstyle(1,12);fillellipse(320,60,25,25); /*绘制太阳*/for (x=280;x>=250;x-=0.0001)putpixel(x,60,12); /*绘制阳光线*/}for (x=360;x>=390;x+=0.0001){putpixel(x,60,12); /*绘制阳光线*/}for (y=24;y>=12;y-=0.0001){putpixel(320,y,12); /*绘制阳光线*/}for (y=96;y<=108;y+=0.0001){putpixel(320,y,12); /*绘制阳光线*/}setlinestyle(3,0,1);setcolor(12);for (i=0;i<=2*PI;i+=PI/12) /*绘制阳光线*/{line(320+40*cos(i),60-36*sin(i),320+70*cos(i),60-48*sin(i)); for (x=0;x<=55555;x+=0.1){y=y+x; /*延时控制*/}}setcolor(13);setlinestyle(0,0,1);rectangle(460,100,620,200); /*绘制地图框(矩形)*/ setcolor(11);setlinestyle(0,0,3);ellipse(540,150,0,360,77,48); /*绘制地球(椭圆)*/circle(540,150,46); /*绘制经线(圆形)*/ellipse(540,100,210,330,45,16); /*绘制北极圈(椭圆弧)*/ellipse(540,200,30,150,45,16); /*绘制南极圈(椭圆弧)*/setcolor(14);setlinestyle(3,0,1);line(460,150,620,150); /*绘制赤道(水平线)*/line(540,100,540,200); /*绘制经线(垂直线)*/setcolor(11); setlinestyle(0,0,1);for (i=0;i<=2*PI;i+=PI/300){putpixel(590-35*cos(i),50-35*sin(i),11); /*绘制0.1秒刻度*/}setcolor(14);setlinestyle(0,0,1);circle(590,50,2); /*绘制中心轴*/setcolor(13);setlinestyle(0,0,3);for (i=0;i<=2*PI;i+=PI/6){line(590+25*sin(i),50-25*cos(i),590+30*sin(i),50-30*cos(i));/*绘制小时*/for (x=0;x<=5555;x+=0.001){y=y+x; /*延时控制*/}getch();closegraph(); }五、主要解决问题的方法及技术关键1、主要问题及解决方法✓抛物线的画法用插补法画抛物线。
4.代码设计(1)引入命名空间:Imports System.Drawing.Drawing2D(2)在FrmPaint类里定义全局变量和mSelect枚举结构:1.Private g As Graphics '绘图句柄2.Private pstart As Point, pend As Point '定义画图的起始点,终点3.Private mChoice As Integer'选择图形枚举4.Private mWidth As Integer'画笔宽度5.Private mIcon As Icon '用户选择图标6.Private Enum mSelect '选择图形类别枚举7. Pencil '铅笔8. Line '直线9. Ellipse '椭圆10. FillEllipse '填充椭圆11. StyleEllipse '风格椭圆12. Rec '矩形13. FillRec '填充矩形14. StyleRec '风格矩形15. Icon '图标16. Eraser '橡皮17.End Enum(3)在FrmPaint的Load事件中初始化全局变量和Graphics对象:1.Private Sub FrmPaint_Load(ByVal sender As System.Object, _2.ByVal e As System.EventArgs) Handles MyBase.Load3.4. g = Me.picPaint.CreateGraphics '获取PictureBox的绘图句柄5. mChoice = mSelect.Pencil '默认选择选铅笔作为绘图工具6. mWidth = 1 '初始化画笔宽度7.End Sub(4)定义转换坐标起点和终点的过程Convert_Point()。
面向对象程序设计课程设计报告设计题目:简单画图程序的设计学院:信息工程学院专业:计算机科学与技术(交通)学号:201224020326姓名:房战锋同组同学学号:201224020325指导教师:张少博2013 年12 月24 日目录第一章:设计目的及内容 (2)1.1【设计目的】 (2)1.2【设计内容】 (2)第二章:基本功能概述 (3)2.1【工程的新建】 (3)2.2【单文档简介】 (4)2.3【添加消息响应函数】 (5)2.4【资源】 (5)2.5【设备环境】 (6)第三章:设计思路 (6)第四章:软件设计 (7)4.1【设计步骤及关键代码】 (7)4.1.1【点、直线、矩形、椭圆的绘制】 (9)4.1.2【连续线及扇形的绘制】 (11)4.1.3【画刷】 (12)4.2【设置对话框】 (14)4.3【颜色】 (14)4.4【打开与保存】 (15)第五章:结论与心得体会 (16)参考文献: (17)附录: (18)【调试报告】 (18)【测试结果】 (18)【关键代码】 (18)第1章:设计目的及内容1.1【设计目的】1 学习Visual C++的MFC开发程序的步骤。
2 综合运用所学的类、继承和多态的知识。
3 进一步掌握程序的调试方法。
1.2【设计内容】1利用MFC的向导,创建基于单文档的应用程序;2 编程实现,绘制线、圆、矩形的功能;3 能够设定当前要画的图形样式(最少为以上3种)和图形颜色(最少能够设为以下4 种颜色:黑、红、绿、蓝)。
4 当窗口重绘后,还能保持原来的图形。
5 选做1:能够选中某些已绘制的图形,并删除之。
6 选做2:能够保存已绘制的图形,下次打开时恢复原状。
第2章:基本功能概述2.1【工程的新建】打开Microsoft Visual C++ 6.0 —> 点击File —> New 在Projects中选择MFC AppWizard (exe) ;在Project name中输入工程的名字Graphic,在Location中选择工程存放的路径。
填完后点击OK按钮。
(如图1)填完后点击OK按钮,弹出对话框(如图2)。
在弹出来的对话框中我们可以选择生成三种不同类型的应用程序:单文档、多文档、对话框。
单文档程序如记事本,在一个应用程序中只能对一个文档进行操作,降低了编程的复杂度并减少了运行程序时所需的资源。
对某些小型应用(比如文本编辑器或小型图像编辑器)可以采用这种类型的窗口应用程序。
在这个程序中,我们就需要单文档,选择完后点击Next,设置默认,最后点击Finish 完成工程的创建。
图1图22.2【单文档简介】生成单文档程序后,进行编译,在运行,我们可以看到以下的结果。
如图3图3在ClassView中,我们可以看到系统自动为我们生成了五个类:CApp , CDoc , CView , CAboutDlg , CMainFrame。
如图4图4CApp相当于C语言中的main()函数。
是程序的起始。
CDoc是用于处理程序中文档的类。
CView主要是处理客户区的可视化的操作的类。
CAboutDlg是处理关于对话框的类。
CMainFrame是非客户区的一些资源的类。
我们主要是对CView 类进行操作。
2.3【添加消息响应函数】系统为我们生成了一个程序的框架,但是这个框架完成不了什么具体的功能。
为了使程序程序完成我们想要做的事,我们要向这个框架中加入一些代码。
VC++程序的运行并不像C语言是按照顺序运行下来的。
每当我们完成一个事件,系统就会发出特定的消息,程序就会跳到相应的消息响应函数中执行里面的代码。
单击菜单中的View->Class Wizard(或按快捷键Ctrl+W),将会弹出MFC Class Wizard对话框。
在Class Name中选择CView,在Messages中选择WM_LBUTTONDBLCLK,点击右边的Add Function按键。
这样我们就为程序添加了鼠标左键双击的消息响应函数,函数名为OnLButtonDblClk(UINT nFlags, CPoint point)。
我们点击Edit Code按键就可以进入消息响应函数中。
我们在消息响应函数中添加如下代码:AfxMessageBox(“Hello Word!”); 运行程序!当我们在客户区中双击鼠标左键时,我们可以看到效果(如图5)。
我们在完成双击鼠标左键这个事件后,Windows便会发出WM_LBUTTONDBLCLK这条消息。
我们的程序收到这个消息后,就会跳转到鼠标左键双击的消息响应函数内,执行里面的代码。
同样的,我们可以添加其他的消息响应函数,如鼠标左键按下,抬起,鼠标移动等(WM_LBUTTONUP、WM_LBUTTONDOWN、WM_MOUSEMOVE等)。
我们程序就是在这样的消息响应机制下运行的。
图52.4【资源】在ResoureView 里,我们可以编辑对话框、菜单、工具条、快捷键等资源。
点开Menu,可以看到一个ID为IDR_MAINFRAME的菜单。
ID是一个标识,实际上是一个无符号整型常量,每一个资源在程序中都有一个唯一的ID号。
双击IDR_MAINFRAME,在右边的视图中双击帮助右边的虚线框,弹出菜单属性,在Caption中输入“画图”,并将其关闭。
双击画图菜单下面出现虚线框,在caption中输入“画线”后将其关闭。
双击画线,在弹出的菜单属性中ID栏的ID_MENUITEM32775改成ID_MENUITEM_LINE。
同样方法在建一个“画圆”菜单项。
注意:每个资源对应一个ID号,ID号的命名全部用大写字母,且要符合匈牙利命名法。
我们为新的菜单项起名,如果我们选择了Pop-up,生成的菜单就还有下级子菜单;如果没有选择,菜单就没有下级菜单。
我们同样可以在Class Wizard 中为我们生成的菜单添加响应。
在Class Wizard 中的Object IDs中选中菜单的ID号,Messages中选择COMMOND,然后点击Add Function。
这样,我们就为新建的菜单添加了点击的响应,我们同样可以点击Edit Code 编辑消息响应函数。
2.5【设备环境】CDC是设备环境类的基类直接由CObject派生。
是GDI的关键元素,它代表了物理设备。
每一个C++设备环境对象都有相对应Windows设备环境,并通过一个32位类型的HDC 句柄来标识。
CDC类的虚拟性使我们可以很容易的做到编写同时适用于多种设备的代码。
使用CDC类可以使我们的作图不用关心设备的问题。
CClientDC和CWindowDC是显示设备环境类,都是由CDC派生而来,区别在于CClientDC是窗口的客户区不包括边框、标题栏和菜单栏,(0,0)指客户区域的左上角。
CWindowDC的(0,0)指整个屏幕的左上角,这意味着我们可以在显示器的任意地方绘图,包括窗口边框、标题栏和菜单栏等等。
CWindowDC 一般应用在框架窗口,而不是视图窗口。
CDC对象被创建后一定要在合适的时候将它删除掉,如果忘记了删除设备环境对象则会造成内存丢失。
在每次绘图前,我们要获取设备环境,我们可以使用CDC* GetDC ( ) 函数来获取设备环境。
在绘图完成后,使用void ReleaseDC(CDC* pDC ) 函数释放设备环境。
第3章:设计思路我们的设计思路是编辑菜单项,下图是关于菜单的结构图,写出对应的菜单项相应函数,当在菜单选项中选择某项时,会执行相应的代码,再就是在视图类中添加消息,并添加消息响应函数,发出哪个消息时,会执行相应的消息响应函数,最终显示在屏幕上。
第4章:软件设计4.1【设计步骤及关键代码】首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic 。
为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。
当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。
添加的六个菜单项的ID 及名称如表1所示。
然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。
简易画图板文件绘图笔刷打开保存点直线 矩形椭圆扇形 连续线设置颜色 简单笔刷位图笔刷线宽线型菜单项ID 菜单项名称菜单项命令响应函数IDM_DOT 点OnDotIDM_LINE 直线OnLineIDM-RECTANGLE 矩形OnRectangleIDM_ELLIPSE 椭圆OnEllipseIDM_SHANXING 扇形OnShanxingIDM_LIANXUXIAN 连续线OnLianxuxian表1添加的菜单项在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。
因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:private: UINT m_nDrawType:接着,在视类的构造函数中将此变量初始化为0,表明用户还没选择选项,程序代码如下:CGraphicView::CGraphicView(){// TODO: add construction code herem_nDrawType=0;}利用switch/case语句,来分别完成相应图形的绘制。
当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。
程序代码如下:void CGraphicView::OnDot(){// TODO: Add your command handler code herem_nDrawType=1;}void CGraphicView::OnLine(){// TODO: Add your command handler code herem_nDrawType=2;}void CGraphicView::OnRectangle(){// TODO: Add your command handler code herem_nDrawType=3;}void CGraphicView::OnEllipse(){// TODO: Add your command handler code herem_nDrawType=4;}void CGraphicView::OnShanxing(){// TODO: Add your command handler code herem_nDrawType=5;}void CGraphicView::OnLianxuxian(){// TODO: Add your command handler code herem_nDrawType=6;}4.1.1点、直线、矩形、椭圆的绘制对于直线、矩形和椭圆,在绘制时都可有两点来确定其图形。