《图形的分解构成》讲解稿

时间:2019-05-15 05:49:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《图形的分解构成》讲解稿》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《图形的分解构成》讲解稿》。

第一篇:《图形的分解构成》讲解稿

《图形的分解构成》讲解稿

尊敬的评委老师:

我今天讲课的内容是《图形的分解构成》。本课程我将分为教材、授课对象、教学过程、教学反思四个内容进行讲解。

首先说教材:本课是美术基础课程。承接点、线、面内容的延伸学习,如何把几何形重新排列组合成新的图案是本节课的主要内容。

在授课对象上,本课主要面向中职一年级或二年级刚开始学习构成基础的学生,这些学生来自广西不同的少数民族地区,有一定的美术基础,极富创造力、实践力和个性化,喜欢动手实践,但是这个阶段的学生比较贪玩,注意力也不够集中,显然,传统的讲练课堂不能很好的调动他们积极学习,教师在授课过程中必须不断创新与尝试各种教学情境,激发学生的学习积极性。

根据学生的特点,围绕本课程的教学内容我们开发了一套教学软件及作业训练,用于教学过程的展示及课堂练习。整个课程全程动画展示、游戏操作,带给学生另一番学习情境。

本教学共分七部分 第一部分

利用计算机播放关于广西壮锦图案短片,引发学生对生活中图形的创意应用思考,引出课程内容《图形的分解构成》。

第二部分

打开教学软件图形的分解构成进行教学。用动画的形式进行概念讲解。通过播放动画引出“基本形”、“正负形”概念,展示正方形及圆形的重复构成新图形;展示图形与衬底形成新的图形。

第三部分

进入“作品分析”。

案例一:壮锦图案正方形重复、叠加组成新的图形。案例二:壮锦中其他基本图形的组合、变化动画演示。第四部分

进入“作品欣赏”,让学生先欣赏解构图形作品与正负形作品。引导学生在欣赏、观察中找出问题的答案,并配以音乐,使学生在轻松愉悦的氛围中进行学习。欣赏完后引导学生动手训练,利用纸、笔进行基本形的组合排列。

第五部分

针对学生的练习,教师进行总结性讲解。点击进入“变化规律”按钮,展示作品,了解图形变化规律,并通过边看动画边问答的形式加深学生对知识点的理解。通过观看→问答→回顾,加深学生本本课程知识点的理解及掌握。

第六部分

学生按老师要求进行课堂练习。打开作业训练软件,让学生使用多种几何形进行训练,加深学生对本课的知识点理解。

软件操作简单,学生可以自行选择几何形(方、圆、三角)然后放入方格内,通过组合排列成新的图形。

最后利用截图功能将完成的练习上传到教师电脑。第七部分

利用投影将学生作业进行典型案例分析,与学生一起进行“看谁创意棒”的展示性点评。

总而言之,本次课程借组动画软件、MV、游戏软件等多种手段,结合本地区民族文化特点进行教学,丰富了课堂情境,激发了学生的创作思维。

第二篇:会议讲解稿

工作汇报讲解

尊敬的各位领导:

大家好!我叫***,●首先请允许我代表临沂杏坛文化传播有限公司、费县杏坛职业培训学校、杏坛商务宾馆和教师进修学校函授站全体员工对各位领导的到来表示热烈的欢迎和衷心的感谢!下面就发展情况做如下汇报:

1、费县教师进修学校是经省教育厅批准的一所中等师范专科学校,主要承担着教师教干培训、协助各高校开展学历教育等工作。(大门、在会标的培训场景)2、2000年我校与齐鲁师范学院合作办学以来,连续15年每年的招生人数占到总院校招生人数的80%以上,得到了院校领导的高度重视与支持。(院长合照、来访照片),●历年来省教育厅、●市教育局、●县教育局及●●●院校各级领导莅临学校成人教育工作。

3、●2012年以教师进修学校成人教育为依托在临沂成立了“临沂杏坛文化传播有限公司”,随后成立杏坛职业培训学校和杏坛商务宾馆,2014年烟台大学在杏坛职业培训学校设立临沂函授站。

●“杏坛”相传是孔子讲学之处。利用“杏坛”二字主要倡导“杏坛文化教育,桃李齐鲁大地”,旨在以中国传统文化和孔子儒家思想为主体。●以“至善、至仁、至诚、至道、至德、至圣”为主导思想与公司文化衔接而所用,做到“以人为本、诚信为先”的服务宗旨,利用文化传播这一平台,配备成人教育和社会培训的一流管理服务团队,(会议合影照片)以规范创效益,以规模求发展,以信誉创品牌。

2、●杏坛标志外形如同一本打开的书凸显了行业的特性。首先,中间部分由三片由小到大的银杏树叶组成,形同一棵大树,象征着企业培育人才成长的过程。十年树木,百年树人;也寓意企业枝叶繁茂,硕果累累。其次,中间部分也是三个“人”字,体现了企业的生源之多、规模之大。第三,中间部分也是三个向上扩展的箭头,代表着企业教育文化向外传播,寓意企业积极、向上快速发展。

3、●费县“东周街”始建于明代成化年间的青石板路,是费县悠久历史的珍贵见证。2008年费县人民政府在街口立了一块“费城东周街”石碑,作为县级重点文物保护单位进行保护,●现已建设成仿古建筑群,●宾馆东侧原址建设“费县老县衙”现已作为费县政府慈善机构基金会。

4、●这栋楼为我们临沂杏坛文化传播有限公司所购置,总投资2千余万元,位于费县东周街,由同济大学设计策划。

5、●该栋楼总建筑面积2617平米,1至3层为杏坛商务宾馆所用,●现设有30个房间,装修全部使用环保型材料装修,风格独特。●可接待50至60人入住就餐。●四层和五层为杏坛职业培训学校所用,是费县人力资源和社会保障局、费县民政局批准设立的一所民办学校,是一家专门从事成人职前培训和文化交流传播的社会力量办学机构,学校大门口设在楼的南侧,●设有多媒体教室、●计算机教室、●会议室等,●主要承担计算机、普通话培训考试、● 幼儿教师资格证培训,技能培训等,给社会人员搭建了创业平台,得到了社会和广大学员的好评。

6、●我公司与各院校合作多年,始终坚持“以人为本、诚信为先、友好合作”的发展理念,现与●济南大学● 鲁东大学●烟台大学●滨州医学院●青岛农业大学● 潍坊学院●齐鲁师范学院等院校合作办学,●各大院校非常重视与我公司的合作,在各大院校的指导与帮助下,成人教育招生人数逐年递增,办学规模逐年扩大。现有在读生已达到2万余人,2015年力争突破3万人。

7、●2015年公司主要以弘扬杏坛文化为主题,着力发展成人教育、职业技能培训、社会培训、社会服务等行业。●打造了一支专业的管理团队。●公司配备业务专用车15辆。

8、●公司为了扩大办学规模,分别在各地成立办学机构,2012年在临沂市成立齐鲁成教中心和杏坛文化传播有限公司,投资1000万购置办公区,这是公司外貌●办公区●学员休息区●多媒体教室●接待中心●两个计算机教室●2013年在枣庄市成立晟程职业培训学校,●以服装制作、●计算机操作和电焊操作等专业为主,●培训专业技术人才1500余人,且以该校为平台扩大枣庄市成人教育发展。●得到了省市领导的充分肯定。● 2014年在日照市投资500万元成立日照市东勃职业培训学校,主要方便日照市成人教育招生和日常教学管理、开展各类培训等工作,使办学规模得到提升。●2010年在费县站北路投资1000万元兴建费县唯一一家加盟国际蒙氏教育的高档幼儿园,●设备齐全,配备完善,能容纳500人学习和就餐,●配备高档校车三辆,●所有在岗教师全部参加国际蒙氏教育专业培训,持证上岗。

9、●2015年1月17日临沂市、日照市成人教育工作会议在杏坛商务宾馆隆重召开,●济南大学领导莅临会场指导工作(杨杰照片)。●对做出优异成绩的先进工作者进行表彰。

10、●山东省教育厅为了规范办学,专门抽调院校领导和专家组对我站的工作进行检查,这是: 济南大学领导莅临我校检查档案管理工作。●齐鲁师范学院领导莅临齐鲁成教中心检查办学情况。●鲁东大学领导莅临我校检查团队建设情况,●青岛农业大学领导莅临齐鲁成教中心检查指导工作。●省教育厅检查组来我校检查督导●山东商业职业技术学院领导莅临我校检查教学组织情况。●山东行政学院领导莅临我校洽谈网络教育合作办学●●●临沂市教育局领导莅临杏坛职业培训学校检查指导工作,费县教育局领导陪同检查,对我公司函授站的管理提出了更高的标准,并给予了高度评价。

11、●为了实现资源共享,拓展培训业务,我校增加了普通话等级培训考试和教师资格证的培训业务这是我校自编的普通话教材,●这是山东省语委颁发的普通话等级证书,全国通用网上可查,并设有二维码检测。●这是我校自编的教师资格证培训教材。

12、●我站为加大教学管理队伍的建设,经常组织召开业务人员培训会议,●提升个人演讲技能,使招生和教学管理工作责任到人,落实到位,●加大队伍的建设,有效的提升了办学信誉和社会影响面。●2014年公司开始为工作业绩突出的优秀工作者全额购买养老保险,使我们的员工老有所依,老有所养。

13、●2015年我们的工作目标是:

一:成人教育:以临沂、日照、枣庄市为中心,拓展成人教育领域,稳步增长,逐年扩大,使其在读生达到3万人以上。

二:社会培训:开展多元化一站式培训,开展普通话等级证书、教师资格证、会计证、家政等培训,2015年完成培训5000人指标。

三:职业技能培训:以杏坛职业和晟程职业培训学校为依托,分别在日照、泰安、淄博、聊城四地市拓展职业技能培训,2015年培训人数达到4000人。

四:社会服务:以杏坛商务宾馆为起点,开始筹建容纳100个房间以上的宾馆一处,逐步发挥连锁效益。

五:筹建农产品开发:计划与青岛农业大学联合开发500亩规模的农田蔬菜基地,推广无公害栽培技术。

六:学前教育:以费县跨世纪幼儿园为基础,逐步面向全市推广和扩建大型规范化幼儿园三处。

15、●2015年我校高度重视与各大院校的合作,以友好合作、规范办学、实现共赢为主导,根据市教育局及教育厅的要求,加强工作人员的整体素质的提升,(工作人员培训照片、制度照片)规范档案管理及教学等工作,力争各项工作再创佳绩。

我的讲解到此结束,再次欢迎各位领导下榻杏坛商务宾馆指导工作,感谢多年以来对我们工作的支持与帮助,谢谢大家!

第三篇:策划书讲解稿

策划书讲解稿

讲解人:王杏娣

各位评委,各位同学,晚上好,我是来自社联骨干培训第五组的成员,接下去的4分钟将由我来为大家讲解我们的策划书!(第一张PPT)

我们的策划书是在“我与我的社团”这个大主题下于12月中旬举办的“12月温暖季”的主题活动

(第二张PPT)我们的策划书分8

篇,这是我们策划书的总概。那首先来看看我们的第一篇:活动目的(指向第3张PPT)作为一个策划书的目的,万变不离其宗,总会涵盖社团交流,服务同学,以及社团的后续发展,那就如你所见,我们的也是。(回到第二张PPT)

接下来,要给大家介绍的是我们的活动背景(指向第四张PPT)从“12月温暖季”这个主题我们就能知道,这次的主题活动是希望在这个寒冷的冬天能为大家带去一丝温暖,与大家共享我们社团的文化(回到第二张PPT)

那大家一定也想看看是谁能参与这次主题活动了,接下去给大家展示的就是我们的活动主体部分(指向第五张PPT)那此次活动的举办方呢是我们的7个文娱类社团,分别是桌游协会 相和棋社

酷德调酒社

零点台球协会

浮夸映像社 Show蜜格调甜点社

亮苑影视协会 至于参与对象就是我们计量的全校师生,我们的活动安排在12月中旬(回到第二张PPT)

现在大家将看到的呢,是活动宣传这一篇(指向第6张PPT)那第一部分呢,我们是以各个社团的宣传部为主体的宣传活动,第二部分则

是以外联部为主体的对外的宣传,由于时间关系这一部分的具体方案请详见我们策划书的附录以及外联部的策划书(回到第二张PPT)

那现在呢我来给大家着重介绍一下我们的活动流程(指向第七张PPT)这一篇分3个部分,一个是活动前期的准备,这一部分主要侧重于宣传,人员安排,赞助商的联系以及场地的租借问题;第二部分是活动当天的准备(直接指向第八张PPT)当然此时,我们更看重的是活动的顺利举办,因此当天我们会把更多的把精力放在场地,人员安排及到位这一块,当天还有一个更重要的事(直接到第9张PPT)那就是节目安排,这次节目呢不是按顺序出场的,而是同时举行,持续时间将长达3个小时,你可以在PPT上看到,这是我们各个社团准备的活动,你们可以选择感兴趣的参加!接下去是我们活动流程的最后一部分

(直接到第10张PPT)活动后期的整理,那为了纪念此次活动,合影是少不了的。当然场地的打扫也是必须的(回到第二张PPT)

(指向第11张PPT)现在你看到的是我们的活动资源:一部分呢是我们的场地,仪器设备等,那另一部分(直接到12张PPT)是每个社团根据自己社团的特点及节目所给出的人员安排!(回到第二张PPT)

(指向第13张PPT)这里给你们展示的是我们七个社团给出的初步的资金预算,合计是2690元,其中包括了场地,材料,以及宣传资金!(回到第二张PPT)

最后我们想给大家介绍的是“我与我的社团”(指向第15张PPT)在这里,我们给大家展示的是我们7个社团活动的照片,这些是我们与社团一起奋斗的证

据,是我们与社团一起成长的印记,曾经,或许我们跌倒过,失败过,但我们坚持着努力着,相信在不久的未来你们会看到更强大的我们以及我们的社团,谢谢评委,谢谢同学们!(鞠躬)

第四篇:计算机图形学课程设计 图形绘制变换分解

计算机图形学 实验报告

课程名称 : 计算机图形学 实验名称 : 图形绘制与变换 学 院 : 电子信息工程学院 专 业 : 计算机科学与技术 班 级 : 11计科本 01班 学 号 : 111102020103 姓 名 : 张慧 指导教师 : 王征风

二零一四年

目录

一、引言----------------3

二、设计需求---------3

2.1 设计目标--3 2.2 设计环境--3

2.2.1 VC++6.0------------------------3 2.2.2 MFC------------------------------4 2.3 设计题目及要求----------------------4 2.4 总体流程图----------------------------4

三、课程设计原理---5

3.1 实现的算法------------------------------5

3.1.2 Bresenham算法画直线------5 3.1.3 中心点算法画圆和椭圆------5 3.2 图形变换的基本原理------------------7

3.2.1平移变换------------------------7 3.2.2 旋转变换----------------------8 3.2.3 比例变换----------------------8

四、总体设计与功能实现-------------------------8

4.1 主要界面设计---------------------------8 4.2 设置颜色界面---------------------------8

4.2.1 界面设置代码------------------8 4.2.2 运行结果------------------------9 4.3 二维线画图元实现---------------------9 4.4 画多边形功能的实现--------------13 4.5 画Bezier曲线功能的实现-------14 4.6 二维图形变换的实现--------------16 4.7 三维图形的变换--------------------17

五、实验心得体会

一、引言

计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。计算机图形学研究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定的,等等。图形API是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形操作细节或任务系统细节的工具集。计算机图形学有着广泛的应用领域,包括物理、航天、电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的服务。

计算机图形学利用计算机产生让人赏心悦目的视觉效果,必须建立描述图形的几何模型还有光照模型,再加上视角、颜色、纹理等属性,再经过模型变换、视图变换、投影操作等,这些步骤从而实现一个完整的OpenGL程序效果。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。计算机图形学通过应用OpenGL的功能,使得生成的图形效果具有高度真实感。学习计算机图形学的重点是掌握OpenGL在图形学程序中的使用方法。事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。

通过21世纪是信息的时代,在日新月异的科技更新中相信计算机会发挥越来越重要的作用,计算机图形学也会在更多的领域所应用,虽然我国在这方面还比较薄弱,但相信会有越来越好的时候的。

二、设计需求

2.1 设计目标

以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到:巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。

2.2 设计环境

2.2.1 VC++6.0 VC++6.0是 Microsoft 公司推出的一个基于 Windows 系统平台、可视化的 集成开发环境,它的源程序按 C++语言的要求编写,并加入了微软提供的功能 强大的 MFC(Microsoft Foundation Class)类库。MFC 中封装了大部分 Windows API 函数和 Windows 控件,它包含的功能涉及到整个 Windows 操作系统。MFC 不仅给用户提供了 Windows 图形环境下应用程序的框架,而且还提供了创建应 用程序的组件,这样,开发人员不必从头设计创建和管理一个标准 Windows 应 用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另 外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的 高度可视化的应用程序开发工具和 MFC 类库,可使应用程序开发变 得简单。2.2.2 MFC MFC(Microsoft Foundation Classes),是 一 个 微 软 公 司 提 供 的 类 库(class libraries)以 C++类的形式封装了 Windows 的 API,它包含了窗口等许多类的定义。各种类的集合构成了一个应运程序的框架结构,以减少应用程序开发人员的工作 量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组 件的封装类。MFC 6.0 版本封装了大约 200 个类,其中的一些可以被用户直接使用。例如CWnd 类封装了窗口的功能,包括打印文本、绘制图形及跟踪鼠标指针的移动等;CsplitterWnd 类是从 CWnd 类派生出来的,继承了基类或称父类 CWnd 类的所 有特 性,但增加了自己的功能,实现拆分窗口,使窗口至少可被拆分成两个窗口,用户 可以移动两个窗口之间的边框来改变窗口的大小;CtoolBar 类可以定义工具栏等。MFC 命名的惯例是类的名字通常是由“C”打头;成员变量使用前缀“m_”,接着使用一个字母来指明数据类型,然后是变量的名称;所有的单词用大写字母开头。

2.3 设计题目及要求

(1)题目:实现多边形和曲线的绘制和变换

(2)要求:学会使用VC++编写实现图形的绘制变换,需包括直线、曲线、多边形的绘制和变换,及三维立体图形的相应变换.2.4 总体流程图

三、课程设计原理

3.1 实现的算法

3.1.1 DDA算法画直线

DDA是数字微分分析式(Digital Differential Analyzer)的缩写。

已知直线两端点(x1,y1)、(x2,y2)则斜率m为:m =(y2-y1)/(x2-x1)= Dx/Dy;直线中的每一点坐标都可以由前一点坐标变化一个增量(Dx, Dy)而得到,即表示为递归式: xi+1=xi+Dx yi+1=yi+Dy。

递归式的初值为直线的起点(x1, y1),这样,就可以用加法来生成一条直线。具体算法是: 该算法适合所有象限,其中用了用了两个函数如:Integer(-8.5)=-9;Integer(8.5)=8;Sign(i),根据i的正负,分别得到-1,0,+1; 相应代码:

//DDA DrawLine

{if(abs(x2-x1)> abs(y2-y1))

length = abs(x2-x1);

else

length = abs(y2-y1);

Dx =(x2-x1)/length;

Dy =(y2-y1)/length;

x = x1+0.5*Sign(Dx);

y = x2 + 0.5*Sign(Dy);

i = 1;

while(i <= lenght)

{ setpixel(Integer(x),Integer(y),color);

x= x + Dx;

y= y + Dy;

i+=1;} } 3.1.2 Bresenham算法画直线

思路如下: // 假设该线段位于第一象限内且斜率大于0小于1,设起点为(x1,y1),终点为(x2,y2).// 根据对称性,可推导至全象限内的线段.1.画起点(x1,y1).2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点.如果线段ax+by+c=0与x=x1+1的交点的y坐标大于M点的y坐标的话,下个点为U(x1+1,y1+1),否则,下个点为B(x1+1,y1),3.画点(U或者B).4.跳回第2步.5.结束.3.1.3中心点算法画圆和椭圆

(1)中心点算法画圆

在一个方向上取单位间隔,在另一个方向的取值由两种可能取值的中点离圆的远近而定。实际处理中,用决策变量的符号来确定象素点的选择,因此算法效率较高。生成圆弧的中点算 法和上面讲到的生成直线段的中点算法类似。

考虑第一象限内x[0,R/2]的八分之一圆弧段。经过计算,得出判别式的递推公式为:

di1di2xi3di2(xiyi)5d0d0

(xi, M SE yi,r)E 这两个递推公式的初值条件为:

(x0,y0,r)(0,R)d05/4R

编写成员函数如下:

void CMy2_9View::MidPointEllipse(CDC *pDC, double a, double b, int color){ double x,y,d,xP,yP,squarea,squareb;

squarea=a*a;

squareb=b*b;

xP=(int)(0.5+(double)squarea/sqrt((double)(squarea+squareb)));

yP=(int)(0.5+(double)squareb/sqrt((double)(squarea+squareb)));

x=0;

y=b;

d=4*(squareb-squarea*b)+squarea;

pDC->SetPixel(x,y,color);

while(x<=xP)

{if(d<=0)d+=4*squareb*(2*x+3);

else

{d+=4*squareb*(2*x+3)-8*squarea*(y-1);

y--;}

x++;

pDC->SetPixel(x,y,color);}

x=a;

y=0;

d=4*(squarea-a*squareb)+squareb;

pDC->SetPixel(x,y,color);

while(y

{ if(d<=0)d+=4*squarea*(2*y+3);

else

{d+=4*squarea*(2*y+3)-8*squareb*(x-1);

x--;}

y++;

pDC->SetPixel(x,y,color);}} 编写OnDraw函数如下:

void CMy2_9View::OnDraw(CDC* pDC){CMy2_9Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);MidPointEllipse(pDC,500,300,RGB(0,0,0));}(2)中心点算法画椭圆

我们先考虑圆心在原点的椭圆的生成,对于中心不是原点的椭圆,可以通过坐标的平移变换获得相应位置的椭圆。中心在原点。焦点在坐标轴上的标准椭圆具有X轴对称、Y轴对称和原点对称特性,已知椭圆上第一象限的P点坐标是(x, y),则椭圆在另外三个象限的对称点分别是(x,-y)、(-x, y)和(-x,-y)。因此,只要画出第一象限的四分之一椭圆,就可以利用这三个对称性得到整个椭圆。

相应代码:

void MP_Ellipse(int xc , int yc , int a, int b){ double sqa = a * a;double sqb = b * b;double d = sqb + sqa *(-b + 0.25);int x = 0;int y = b;EllipsePlot(xc, yc, x, y);while(sqb *(x + 1)< sqa *(y1))* 2-(a * b)* 2;while(y > 0){if(d < 0){ d += sqb *(2 * x + 2)+ sqa *(-2 * y + 3);x++;} else

{d += sqa *(-2 * y + 3);} y--;EllipsePlot(xc, yc, x, y);}} 3.2 图形变换的基本原理

3.2.1平移变换

平移变换函数如下:

void glTranslate{fd}(TYPE x, TYPE y, TYPE z); 三个函数参数就是目标分别沿三个轴向平移的偏移量。这个函数表示用于这三个偏移量生成的矩阵乘以当前矩阵。当参数是(0.0,0.0,0.0)时,表示对函数glTranslate*()的操作是单位矩阵,也就是对物体没有影响。

3.2.2 旋转变换

旋转变换函数如下:

Void glRota{fd}TYPE angle, TYPE x, TYPE y, TYPE z);

函数中第一个参数是表示目标沿从点(x,y,z)到原点方向逆时针旋转的角度,后三个参数是旋转的方向点坐标。这个函数表示用这四个参数生成的矩阵乘以当前矩阵。当角度参数是0.0时,表示对物体没有影响。3.2.3 比例变换

比例变换函数如下:

Void glScale{fd}(TYPE x, TYPE y, TYPE z);

单个函数参数值就是目标分别沿三个轴方向缩放的比例因子。这个函数表示用这三个比例因子生成的矩阵乘以当前矩阵。这个函数能完成沿相应的轴对目标进行拉伸、压缩和反射三项功能。以参数x为例,若当x大于1.0时,表示沿x方向拉伸目标;若x小于1.0,表示沿x轴方向收缩目标;若x=-1.0表示沿x轴反射目标。其中参数为负值时表示对目标进行相应轴的反射变换。

四、总体设计与功能实现

4.1 主要界面设计

4.2 设置颜色界面

4.2.1 界面设置代码:

void CGraphicsView::OnClock(){ WHAT_TO_DO=ID_CLOCK;

clean();int xx = 450, yy = 300, r = 150,d = 5;int i, white = RGB(255,255,255);mile(xx, yy, r, COLOR);Matrix m(xx, 240), s(xx, 200);Matrix t1(xx, yy, true), t2(-xx,-yy, true), mr(PI/1800), sr(PI/30);mile(m.getx(), m.gety(), d+1, COLOR);mile(s.getx(), s.gety(), d, COLOR);dne(m.getx(), m.gety(), xx, yy, COLOR);dne(s.getx(), s.gety(), xx, yy, COLOR);

for(i=0;i<120;i++){

::Sleep(80);

mile(m.getx(), m.gety(), d+1, white);mile(s.getx(), s.gety(), d, white);dne(m.getx(), m.gety(), xx, yy, white);dne(s.getx(), s.gety(), xx, yy, white);m = t1*mr*t2*m;s = t1*sr*t2*s;mile(m.getx(), m.gety(), d+1, COLOR);mile(s.getx(), s.gety(),d, COLOR);dne(m.getx(), m.gety(), xx, yy, COLOR);dne(s.getx(), s.gety(), xx, yy, COLOR);}} 4.2.2 点击“设置--颜色”后,运行结果如下:

4.3 二维线画图元实现

4.3.1 实现代码:

void CGraphicsView::MidCir(CDC *pdc, int x0, int y0, int x1, int y1, int color){ int r,x,y,deltax,deltay,d;r=sqrt(((double)x1-(double)x0)*((double)x1-(double)x0)+((double)y1-(double)y0)*((double)y1-(double)y0));x=0;y=r;deltax=3;deltay=2-r-r;d=1-r;while(x<=y){ ::Sleep(time);

pdc->SetPixel(x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixel(-x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixel(x+x0,-y+y0,color);

::Sleep(time);

pdc->SetPixel(-x+x0,-y+y0,color);

::Sleep(time);

pdc->SetPixel(y+x0,x+y0,color);

::Sleep(time);

pdc->SetPixel(-y+x0,x+y0,color);

::Sleep(time);

pdc->SetPixel(y+x0,-x+y0,color);

::Sleep(time);

pdc->SetPixel(-y+x0,-x+y0,color);

if(d<0)

{ d+=deltax;

deltax+=2;

x++;}

else

{ d+=deltax+deltay;

deltax+=2;

deltay+=2;

x++;

y--;}}} void CGraphicsView::midellispse(int xx, int yy, int r1, int r2, int color){ } void CGraphicsView::Ellipse(CDC *pdc, int x1, int y1, int x2, int y2, int color){

xx0=(x2+x1)/2;yy0=(y2+y1)/2;rra=abs(x2-x1)/2;rrb=abs(y2-y1)/2;if(rra==0 && rrb==0)return;Ellipse0(pdc,xx0,yy0,rra,rrb,color);} void CGraphicsView::Ellipse0(CDC *pdc, int x0, int y0, int a, int b, int color){

int i,yy;int x,y,deltax,deltay;int aa,aa2,aa3,bb,bb2,bb3;double d1,d2;aa=a*a;aa2=aa*2;aa3=aa*3;bb=b*b;bb2=bb*2;bb3=bb*3;x=0;y=b;d1=bb+aa*(-b+0.25);deltax=bb3;deltay=-aa2*b+aa2;pdc->SetPixelV(x+x0,y+y0,color);pdc->SetPixelV(x+x0,-y+y0,color);while(bb*(x+1)

yy=y;

if(d1<0)

{ d1+=deltax;

deltax+=bb2;

x++;}

else

{

d1+=deltax+deltay;

deltax+=bb2;

deltay+=aa2;

x++;

y--;}

::Sleep(time);

pdc->SetPixelV(x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixelV(-x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixelV(x+x0,-y+y0,color);

::Sleep(time);

pdc->SetPixelV(-x+x0,-y+y0,color);} d2=bb*(x+0.5)*(x+0.5)+aa*(y-1)*(y-1)-aa*bb;deltax-=bb;deltay+=aa;while(y>0){ if(d2<0)

{ d2+=deltax+deltay;

deltax+=bb2;

deltay+=aa2;

x++;

y--;}

else

{ d2+=deltay;

deltay+=aa2;

y--;}

::Sleep(time);

pdc->SetPixelV(x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixelV(-x+x0,y+y0,color);

::Sleep(time);

pdc->SetPixelV(x+x0,-y+y0,color);

::Sleep(time);

pdc->SetPixelV(-x+x0,-y+y0,color);}} void CGraphicsView::DDALine(CDC *pdc, int x0, int y0, int x1, int y1, int color){ int xx,yy,s,s1,s2,di;float dx,dy,k,x,y;dx=x1-x0;if(dx>=0)

s1=1;else

s1=-1;dy=y1-y0;if(dy>=0)

s2=1;else s2=-1;dx=abs(dx);dy=abs(dy);if(dx>=dy){

s=0;

di=(int)dx;

k=dy/dx*s2;} else { s=1;

di=(int)dy;

k=dx/dy*s1;} x=x0;y=y0;for(int i=0;i<=di;i++){if(s==0)

{

xx=(int)x;

yy=(int)(y+0.5);

::Sleep(time);

pdc->SetPixel(xx,yy,color);

x+=s1;

y+=k;}

else{

xx=(int)(x+0.5);

yy=(int)y;

::Sleep(time);

pdc->SetPixel(xx,yy,color);

y+=s2;

x+=k;}}} 4.3.2 点击二维线画图元,课相应画出直线、圆和椭圆,结果如下:

4.4 画多边形功能的实现

4.4.1 部分实现代码:

void CGraphicsView::OnDrawDuoBX(){ Vertex_Count dlg;if(dlg.DoModal()==IDOK){ if(dlg.m_vertex_count>MAX)

{ MessageBox(“输入顶点数过大”);

return;}

VertexTotal=dlg.m_vertex_count;

CDC *pDC=GetDC();

CPen pen(PS_SOLID,2,RGB(255,255,255));

CPen *pOldpen=pDC->SelectObject(&pen);

pDC->MoveTo((int)(inVertexArray[0].x+0.5),(int)(inVertexArray[0].y+0.5));

int i;

for(i=1;i

pDC->LineTo((int)(inVertexArray[i].x+0.5),(int)(inVertexArray[i].y+0.5));

pDC->LineTo((int)(inVertexArray[0].x+0.5),(int)(inVertexArray[0].y+0.5));

pDC->SelectObject(pOldpen);

ReleaseDC(pDC);

inLength=0;

outLength=0;

WHAT_TO_DO=ID_DrawDuoBX;}}

4.4.2 点击多边形,输入定点个数,可绘制出相应的多边形,结果如下:

4.5 画Bezier曲线功能的实现

4.5.1 部分实现代码:

void CGraphicsView::OnBezier(){ // TODO: Add your command handler code here WHAT_TO_DO=ID_BEZIER;CDC *p=GetDC();

p->TextOut(10, 20, “PS:鼠标左键添加曲线,鼠标右键修改曲线.”);

ReleaseDC(p);} void CGraphicsView::OnBezierClear(){ n =-1;RedrawWindow();} void CGraphicsView::DrawBezier(DPOINT *p){ if(n <= 0)return;if((p[n].x < p[0].x+1)&&(p[n].x > p[0].x-1)&&(p[n].y < p[0].y+1)&&(p[n].y > p[0].y-1)){ pDC->SetPixel(p[0].x, p[0].y, COLOR);

return;} DPOINT *p1;p1 = new DPOINT[n+1];int i, j;p1[0] = p[0];for(i=1;i<=n;i++){ for(j=0;j<=n-i;j++)

{ p[j].x =(p[j].x + p[j+1].x)/2;

p[j].y =(p[j].y + p[j+1].y)/2;}

p1[i] = p[0];} DrawBezier(p);DrawBezier(p1);delete p1;} void CGraphicsView::OnBezierAdd(){ AddorMove = 1;} void CGraphicsView::OnBezierMove(){ AddorMove =-1;} void CGraphicsView::OnMouseMove(UINT nFlags, CPoint point){ switch(WHAT_TO_DO){ case ID_BEZIER:

{ if(current >= 0){ points[current].x = point.x;

points[current].y = point.y;

RedrawWindow();} if(current2 >= 0)

{ points[current2].x = point.x;

points[current2].y = point.y;

RedrawWindow();}

break;} default:break;} CView::OnMouseMove(nFlags, point);} 4.5.2 点击曲线--Beizer曲线,可实现Beizer曲线的绘制功能,绘制结果如下图:

图 1 图 2

4.5.3 点击曲线--Beizer曲线,可实现Beizer曲线的移动,鼠标点击其中的任一点,可实现曲线的移动,绘制结果如下图:

上图1移动后的曲线

上图2移动后的曲线 4.6 二维图形变换的实现

可以实现一椭圆在界面上的随机移动,一圆在界面上饶某一点的旋转和一正方形由大变小在变大的变化,部分实现代码如下: void CGraphicsView::OnXuanzhuan(){ WHAT_TO_DO=ID_XUANZHUAN;

time=0;

OnClear();

CClientDC dc(this);CDC* pDC=&dc;

int i, white=RGB(255,255,255), point [2][2]={{300,200},{300,250}};

Matrix a(point[0][0],point[0][1]), b(point[1][0],point[1][1]);

int midx=(point[0][0]+point[1][0])/2,midy=(point[0][1]+point[1][1])/2;

Matrix t1(midx, midy,true), t2(-midx,-midy,true);

Matrix r(PI/50);

Matrix temp(midx, midy,true);

temp = t1*r*t2;

for(i=0;i<200;i++){

::Sleep(50);

MidCir(pDC, a.getx(), a.gety(), b.getx(), b.gety(), white);

a = temp*a;

b = temp*b;

MidCir(pDC, a.getx(), a.gety(), b.getx(), b.gety(), COLOR);}

for(i=0;i<200;i++){

::Sleep(50);

MidCir(pDC,a.getx(), a.gety(), b.getx(), b.gety(), white);

a = temp*a;

b = temp*b;

MidCir(pDC, a.getx(), a.gety(), b.getx(), b.gety(), COLOR);}

time=5;} void CGraphicsView::OnUpdateXuanzhuan(CCmdUI* pCmdUI){ pCmdUI->SetCheck(WHAT_TO_DO==ID_XUANZHUAN);} void CGraphicsView::OnScale(){ WHAT_TO_DO=ID_SCALE;

OnClear();CClientDC dc(this);CDC* pDC=&dc;

time=0;int i,white=RGB(255,255,255), point[4][2]={{300,250},{400,250},{300,300},{400,300}};float sx=0.9,sy=0.85;int midx=(point[0][0]+point[3][0])/2,midy=(point[0][1]+point[3][1])/2;Matrix s1(sx,sy),s2(1/sx,1/sy);Matrix t1(midx, midy,true), t2(-midx,-midy,true);

Matrix a(point[0][0],point[0][1]), b(point[1][0],point[1][1]);Matrix c(point[2][0],point[2][1]), d(point[3][0],point[3][1]);Matrix temp(midx, midy,true);temp = t1*s1*t2;DDALine(pDC,a.getx(),a.gety(),b.getx(),b.gety(),COLOR);DDALine(pDC,a.getx(),a.gety(),c.getx(),c.gety(),COLOR);DDALine(pDC,c.getx(),c.gety(),d.getx(),d.gety(),COLOR);DDALine(pDC,d.getx(),d.gety(),b.getx(),b.gety(),COLOR);for(i=0;i<20;i++){

::Sleep(30);

DDALine(pDC,a.getx(),a.gety(),b.getx(),b.gety(),white);

DDALine(pDC,a.getx(),a.gety(),c.getx(),c.gety(),white);

DDALine(pDC,c.getx(),c.gety(),d.getx(),d.gety(),white);

DDALine(pDC,d.getx(),d.gety(),b.getx(),b.gety(),white);

a=temp*a;

b=temp*b;

c=temp*c;

d=temp*d;

DDALine(pDC,a.getx(),a.gety(),b.getx(),b.gety(),COLOR);

DDALine(pDC,a.getx(),a.gety(),c.getx(),c.gety(),COLOR);

DDALine(pDC,c.getx(),c.gety(),d.getx(),d.gety(),COLOR);

DDALine(pDC,d.getx(),d.gety(),b.getx(),b.gety(),COLOR);} temp = t1*s2*t2;for(i=0;i<20;i++){

::Sleep(30);

DDALine(pDC,a.getx(),a.gety(),b.getx(),b.gety(),white);

DDALine(pDC,a.getx(),a.gety(),c.getx(),c.gety(),white);

DDALine(pDC,c.getx(),c.gety(),d.getx(),d.gety(),white);

DDALine(pDC,d.getx(),d.gety(),b.getx(),b.gety(),white);

a=temp*a;

b=temp*b;

c=temp*c;

d=temp*d;

DDALine(pDC,a.getx(),a.gety(),b.getx(),b.gety(),COLOR);

DDALine(pDC,a.getx(),a.gety(),c.getx(),c.gety(),COLOR);

DDALine(pDC,c.getx(),c.gety(),d.getx(),d.gety(),COLOR);

DDALine(pDC,d.getx(),d.gety(),b.getx(),b.gety(),COLOR);} time=5;} void CGraphicsView::OnUpdateScale(CCmdUI* pCmdUI){ pCmdUI->SetCheck(WHAT_TO_DO==ID_SCALE);} 4.7 三维图形的变换

主要实现三维图形的上下左右平移,分别绕X轴Y轴Z轴的旋转,放大和缩小,以及正方体六个面的颜色变换,除此之外,还可以选择背景颜色的改变 4.7.1 部分代码如下:

void CGraphicsView::OnAoduomianti(){ WHAT_TO_DO=ID_AODUOMIANTI;CDrawDLG dlg1;dlg1.DoModal();} void CGraphicsView::OnUpdateAoduomianti(CCmdUI* pCmdUI){ pCmdUI->SetCheck(WHAT_TO_DO==ID_AODUOMIANTI);} void CDrawDLG::OnPaint()

{ CPaintDC dc(this);// device context for painting CWnd *pWnd=GetDlgItem(IDC_DRAW);pWnd->UpdateWindow();// CDC *PDC=pWnd->GetDC();Draw();} void CDrawDLG::Draw(){ CWnd *pWnd=GetDlgItem(IDC_DRAW);pWnd->UpdateWindow();CDC *pDC=pWnd->GetDC();CRect rect;pWnd->GetClientRect(rect);D v[8]={ {-fs,-fs,fs},{-fs,fs,fs},{fs,fs,fs},{fs,-fs,fs},{-fs,-fs,-fs},{-fs,fs,-fs},{fs,fs,-fs},{fs,-fs,-fs} },d[8];

POINT p0[4],p1[4],p2[4],p3[4],p4[4],p5[4],w[8];int z[8];

for(int i=0;i<8;i++){ d[i].x=v[i].x;

d[i].y=(int)(v[i].y*cos(a*DU)-v[i].z*sin(a*DU));

d[i].z=(int)(v[i].y*sin(a*DU)+v[i].z*cos(a*DU));

v[i].x=(int)(d[i].x*cos(b*DU)+d[i].z*sin(b*DU));

v[i].y=d[i].y;

v[i].z=(int)(d[i].z*cos(b*DU)-d[i].x*sin(b*DU));

d[i].x=(int)(v[i].x*cos(c*DU)-v[i].y*sin(c*DU));

d[i].y=(int)(v[i].x*sin(c*DU)+v[i].y*cos(c*DU));

d[i].z=v[i].z;

w[i].x=d[i].x+cx;

w[i].y=d[i].y+cy;

z[i]=d[i].z;} p0[0]=w[0];p0[1]=w[1];p0[2]=w[2];p0[3]=w[3];p1[0]=w[4];p1[1]=w[5];p1[2]=w[6];p1[3]=w[7];

p2[0]=w[0];p2[1]=w[1];p2[2]=w[5];p2[3]=w[4];p3[0]=w[1];p3[1]=w[2];p3[2]=w[6];p3[3]=w[5];p4[0]=w[2];p4[1]=w[3];p4[2]=w[7];p4[3]=w[6];p5[0]=w[0];p5[1]=w[3];p5[2]=w[7];p5[3]=w[4];switch(Maxnum(z,7)){ case 0:fill(p0,p2,p5,0,2,5);break;

case 1:fill(p0,p2,p3,0,2,3);break;

case 2:fill(p0,p3,p4,0,3,4);break;

case 3:fill(p0,p4,p5,0,4,5);break;

case 4:fill(p1,p2,p5,1,2,5);break;

case 5:fill(p1,p2,p3,1,2,3);break;

case 6:fill(p1,p3,p4,1,3,4);break;

case 7:fill(p1,p4,p5,1,4,5);break;}} BOOL CDrawDLG::OnInitDialog(){ CDialog::OnInitDialog();m_scroll1.SetScrollRange(-180,180);m_scroll1.SetScrollPos(0);m_scroll2.SetScrollRange(-180,180);m_scroll2.SetScrollPos(0);m_scroll3.SetScrollRange(-180,180);m_scroll3.SetScrollPos(0);m_scroll4.SetScrollRange(0,350);m_scroll4.SetScrollPos(200);m_scroll5.SetScrollRange(0,300);m_scroll5.SetScrollPos(115);m_scroll6.SetScrollRange(0.00,300.00);m_scroll6.SetScrollPos(50.00);a=b=c=0;fs=50.00;SetTimer(1,100,NULL);Ctrl=0;cx=200;cy=115;COLOR1=RGB(123,234,43);COLOR2=RGB(123,123,0);COLOR3=RGB(123,24,235);COLOR4=RGB(0,123,95);COLOR5=RGB(23,234,34);COLOR6=RGB(234,124,0);COLOR7=RGB(0,43,98);return TRUE;// return TRUE unless you set the focus to a control} void CDrawDLG::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ int nID=pScrollBar->GetDlgCtrlID();switch(nID){ case IDC_SCROLLBAR1: a=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: a--;break;

case SB_LINERIGHT: a++;break;

case SB_PAGELEFT: a-=10;break;

case SB_PAGERIGHT: a+=10;break;

case SB_THUMBTRACK: a=nPos;break;}

if(a<-180)a=180;

if(a>180)a=-180;

pScrollBar->SetScrollPos(a);

break;case IDC_SCROLLBAR2: b=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: b--;break;

case SB_LINERIGHT: b++;break;

case SB_PAGELEFT: b-=10;break;

case SB_PAGERIGHT: b+=10;break;

case SB_THUMBTRACK: b=nPos;break;}

if(b<-180)b=180;

if(b>180)b=-180;

pScrollBar->SetScrollPos(b);

break;case IDC_SCROLLBAR3: c=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: c--;break;

case SB_LINERIGHT: c++;break;

case SB_PAGELEFT: c-=10;break;

case SB_PAGERIGHT: c+=10;break;

case SB_THUMBTRACK: c=nPos;break;}

if(c<-180)c=180;

if(c>180)c=-180;

pScrollBar->SetScrollPos(c);

break;case IDC_SCROLLBAR4: cx=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: cx--;break;

case SB_LINERIGHT: cx++;break;

case SB_PAGELEFT: cx-=10;break;

case SB_PAGERIGHT: cx+=10;break;

case SB_THUMBTRACK: cx=nPos;break;}

if(cx<0)cx=200;

if(cx>350)cx=200;

pScrollBar->SetScrollPos(cx);

break;case IDC_SCROLLBAR5: cy=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: cy--;break;

case SB_LINERIGHT: cy++;break;

case SB_PAGELEFT: cy-=10;break;

case SB_PAGERIGHT: cy+=10;break;

case SB_THUMBTRACK: cy=nPos;break;}

if(cy<0)cy=300;

if(cy>300)cy=0;

pScrollBar->SetScrollPos(cy);

break;

case IDC_SCROLLBAR6: fs=pScrollBar->GetScrollPos();

switch(nSBCode)

{ case SB_LINELEFT: fs--;break;

case SB_LINERIGHT: fs++;break;

case SB_PAGELEFT: fs-=0.55;break;

case SB_PAGERIGHT: fs+=0.55;break;

case SB_THUMBTRACK: fs=nPos;break;}

if(fs<0)fs=50;

if(fs>300)fs=50;

pScrollBar->SetScrollPos(fs);

break;// UpdateData(FALSE);} // Invalidate();Draw();CDialog::OnHScroll(nSBCode, nPos, pScrollBar);} void CDrawDLG::OnOK(){ KillTimer(1);

CDialog::OnOK();} int CDrawDLG::Maxnum(int *p, int n){ int max=p[0];int x;for(int i=0;i<=n;i++){

if(max<=p[i])

{ max=p[i];x=i;} } return x;} void CDrawDLG::fill(POINT *x, POINT *y, POINT *z, int i,int j,int q){ CWnd *pWnd=GetDlgItem(IDC_DRAW);pWnd->UpdateWindow();CDC *pDC=pWnd->GetDC();CRect rect;pWnd->GetClientRect(rect);

CDC dcmem;dcmem.CreateCompatibleDC(pDC);CBitmap bmp,*oldbmp;bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());oldbmp=dcmem.SelectObject(&bmp);CBrush brush[6];brush[0].CreateSolidBrush(COLOR1);brush[1].CreateSolidBrush(COLOR2);brush[2].CreateSolidBrush(COLOR3);brush[3].CreateSolidBrush(COLOR4);brush[4].CreateSolidBrush(COLOR5);brush[5].CreateSolidBrush(COLOR6);CBrush *oldbrush=dcmem.SelectObject(&brush[i]);dcmem.FillSolidRect(rect,COLOR7);dcmem.Polygon(x,4);dcmem.SelectObject(&brush[j]);dcmem.Polygon(y,4);dcmem.SelectObject(&brush[q]);dcmem.Polygon(z,4);dcmem.SelectObject(oldbrush);for(int b=0;b<6;b++)brush[b].DeleteObject();pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(), &dcmem,0,0,SRCCOPY);dcmem.SelectObject(oldbmp);bmp.DeleteObject();dcmem.DeleteDC();} 4.7.2 运行结果如下:

(1)实现多面体的上下左右平移(2)实现多面体的绕轴旋转:

(3)实现多面体的放大缩小:

(4)实现多面体及背景的颜色设置:

(5)三维图形变换整体图形

五、实验心得体会

在本次课程设计过程中,基本掌握了计算机图形学关于图形绘制变换的基础知识,DDA法画直线和中心点法画圆及椭圆的方法,还对图形的变换及需要用到的一系列的函数有了相应的理解,也了解的很多有关于图形学中三维图形的变换的知识。不过都只是皮毛而已,从中锻炼了自己的动手做实验的能力,但同时也让自己看清了自己的水平,以便在以后的生活里多加强有关这方面的学习,从而提升自己在图形学方面的知识水平。

在本次课程设计中,设计方案存在着很多的死板化的实现方法,也是很不人性化的一点,只提供了画一种曲线的方法,且画出的曲线只能移动,此为本次设计方案的不足之一;然后就是能实现曲面和多边形的绘制,却没有对应的实现绘制好图形后直接对其进行平移、选择等变换,此为设计方案不足之二。再者就是三维图形只能实现变换不能实现绘制,此为设计方案不足之三。鉴于个人能力真的有限,所以只能设计出此种级别的效果了。因为实验重要的只是思想过程,效果的不美观只能是因为学习的知识还远远不够,所以不能设计出完美的全面的图形绘制变换程序。

经过此次设计,使我学到了很多东西,在没有开始做程序之前,没有任何思路,不知道该从哪里入手,可能是因为自己平时不认真听课的缘故。后来经过上网查询资料,翻阅参考书,在别人做的程序的启发下,才有了做此程序设计的眉目。在设计过程中遇到了很多的问题,在这里需要感谢王征风老师的帮助和指导,以及同学的帮助,最后一个个问题都被解决了,写出了完整的程序设计。最后也发现,其实只要努力,写出一个设计不是很困难,重要的是自己在写程序的过程中,要会学习,会查阅资料。这次的课程设计让我学习到了很多,以后我会努力提高自己在图形学方面的知识水平。

第五篇:展厅讲解稿英文版

Good morning ladies and gentlemen, I’m Eva.Welcome to BYD Technology City.It’s a great honor to have the opportunity to give you a short introduction.Baoding, as the hometown of many celebrities, has a history of 3000 years, also known as an important fortress in ancient China.The name of the city came from “protecting the capital and stabilizing the nation”.Nowadays, there are 17 colleges and universities , and 120 technology platforms in Baoding, which provide us an inexhaustible supply of personnel in demand.Meanwhile, our advanced manufacturing industry cluster is taking shape, including world leading companies like Great Wall Motor Company Ltd.and Yingli Solar, laying solid foundation for the development of BYD Technology City.As we all know, a proper opportunity is also vital.2014, the coordinated development of beijing-tianjin-hebei had become a national strategy, which will definitely lead to an economic boom in Baoding.That’s an unprecedented opportunity for us.As we can see in this picture, Baoding , Beijing, Tianjin formed a triangle, the distance between each two of them is approximately 140kms, which gives Baoding an unparalleled advantage.In April 2015,BYD Technology City had been included in the Coordinated development of Beijing-Tianjin-Hebei Outline, which made it a national strategy platform that can ease the pressure of Beijing and Tianjin, and put the technology ideas produced in Beijing and Tianjin into practice.After background briefing, lets have a look at the specific plan of BYD Technology City.Our short term plan is “a city with two areas and five towns”, with a total area of 385 square kilometers, as you can see in the picture.The “two areas” are the main area in the left, and the culture and tourism area in the right.Our five technology towns located at the green corridor between the two regions, attracting famous foreign and domestic companies.The long term plan is to expand the city to “1+n” parks, forming an organic whole.The red part is the main area, which has a very convenient traffic with Baoding east station in its center.The green part is the culture and tourism area, which is a peninsula with enchanting scenes.Let’s take a closer look at the main area.We have comprehensive area, modern commercial area, research and education area, industry area, Guogongying cultural village and residential area.In this map we can see the splendid traffic system.We have 7 express ways, 4 railways, Beijing new airport under planning and the high-speed rail from Baigou to it.This splendid external traffic system connected BYD technology city with the world.We also have a convenient internal one, with Baiyangdian boulevard, central boulevard , Baoxin boulevard , Xuqing fast road and Ronggao fast road.There are also Jinggangao express way and Jingguang passenger dedicated line running through the main area.Reasonable industry arrangement along with good transportation and traffic provide vast development space to all our business friends.High-end equipment manufacturing, new energy, health and new generation of IT industries are the main ones in the main area, while the culture and tourism area focuses on creative industries and modern agriculture.As the biggest wet land in Hebei Province, Baiyangdian has a great influence on the climate of the surrounding areas.With ecological restoration as its principle, BYD Technology city has planned an ecology network system to improve the basic environment.So that we can attract people we need.Here is our last picture.A picture about beautiful villages and four demonstration parks of modern agriculture, which will boost the economy and promote the living standard.Let’s take a brief look at the sand table.This is where we are now.This is Hebei University.This is Baoding College.Here is Baoding east station.The area surrounded by the red line is the main area I just introduced.We can see our five technology towns scattered in the green corridor.To the far right is the culture and tourism area.Now we have prepared a short video for you, so that you can have a better view of BYD Technology City.It is a privilege to have you as our honorable guests.I wish you a wonderful and successful trip in China.Thank you for your time!

下载《图形的分解构成》讲解稿word格式文档
下载《图形的分解构成》讲解稿.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    郑州市导游讲解稿

    亲爱的老师同学们,大家好,我是今天的讲解员李雨桐。欢迎大家来到郑州市旅游。非常荣幸能够成为大家本次旅行的导游,在接下来的时间里,我会带领大家认识和了解一些郑州的历史遗迹......

    社团详细讲解稿

    社团详细讲解稿 义工站:烟台汽车工程职业学院义工站成立于2008年6月19日,隶属于烟台市慈善总会义工分会。 以“奉献社会,服务他人,构建和谐”为宗旨,以“帮助别人,就是帮助自己”......

    展会讲解稿范本

    无聊治愈展 基本讲解词 开场白 尊敬的各位老师、亲爱的同学们: 欢迎参观12级会展策划与管理专业学生完成的毕业作品——无聊治愈展,我是讲解员×××,今天非常荣幸能为大家进行......

    博物馆讲解稿[推荐]

    欢迎各位来到泉州海外交通史博物馆,今天由我负责为大家讲解。海交馆建于1959年,是我国第一座海事主题博物馆,在这里陈列展示着丰富的海丝历史遗存。我们眼前的这艘古代海船就是......

    参观讲解稿2

    参观讲解稿2尊敬的各位领导,欢迎来淀粉糖厂参观指导。很高兴今天由我为大家解说介绍金佳谷物淀粉糖项目的生产情况。我们淀粉糖厂是一条年生产6万吨高麦芽糖浆和7千吨粗蛋白......

    班级文化讲解稿

    班级文化讲解稿 尊敬的老师: 大家好!我是五(3)班的讲解员张路。 B、我是五(3)班的讲解员马小丫。 A今天,就有我们两个为大家介绍一下我们五(3)班的班级文化。 B但愿你们不虚此行......

    杨虎城纪念馆讲解稿

    杨虎城纪念馆导游讲解词 各位游客大家好: 欢迎大家参观杨虎城将军陵园。首先自我介绍一下,我是本次为大家负责全程讲解的讲解员小X。在我为大家做讲解的过程中,如有不尽人意之......

    中国梦讲解稿

    中国梦(讲解稿) 老师,同学们,大家好。今天我代表我们小组,在这里跟大家一起学习关于中国梦主题的相关内容。 在2012年11月29日,习近平总书记在参观“复兴之路”展览时提出了中国梦......