计算机图形学课程设计

合集下载

计算机图形学教案

计算机图形学教案

计算机图形学教案一、课程简介计算机图形学是一门涉及计算机图形、图像处理和计算机视觉等领域的重要课程。

本课程将介绍计算机图形学的基本概念、原理和应用,帮助学生掌握计算机图形学的基础知识,并提升他们在图形学领域的技能。

二、课程结构1. 计算机图形学基础- 介绍计算机图形学的历史发展和基本概念- 讨论计算机图形学的应用领域和未来发展趋势- 熟悉图像处理、图形学渲染和动画等基本技术2. 图形系统建模- 学习三维图形对象的建模和表示方法- 掌握光栅化和矢量化图形处理技术- 讨论图形系统的设计和实现3. 计算机视觉- 理解视觉系统的基本原理和功能- 学习计算机视觉的算法和应用- 探讨计算机视觉在人工智能领域的应用4. 图形学编程实践- 深入学习图形学编程语言和库- 完成实际项目,提升图形学编程能力- 探索图形学在多领域的应用案例三、教学目标1. 帮助学生全面了解计算机图形学的基本知识和技术2. 培养学生分析和解决计算机图形学问题的能力3. 提升学生在图形学领域的实际操作和应用能力4. 激发学生对计算机图形学研究的兴趣和热情四、教学方法1. 理论讲解:通过课堂讲解、案例分析等方式,向学生介绍计算机图形学的基本概念和原理2. 实践操作:组织学生参与实验、项目等实际操作,巩固理论知识并提升实践能力3. 课堂互动:鼓励学生提问、讨论,促进师生间的互动和交流4. 作业考核:布置不同形式的作业,检测学生对知识的掌握情况,促进学习效果的提升五、教材参考1. 《计算机图形学导论》2. 《OpenGL图形与游戏开发实践》3. 《计算机视觉:算法与应用》4. 《经典图形学算法实例详解》六、学习评价1. 课堂表现:出勤情况、课堂参与度等2. 作业考核:课后作业、实验报告等3. 期末考核:闭卷考试、项目实践等4. 综合评价:综合考虑以上因素,对学生进行综合评定七、总结计算机图形学作为一门新兴的学科,正逐渐成为信息技术领域的热门专业之一。

计算机图形学教案

计算机图形学教案

计算机图形学教案第一章:计算机图形学概述1.1 课程介绍介绍计算机图形学的定义、发展和应用领域解释图形学与图像学的区别1.2 图形学基本概念什么是点、线、面、体坐标系统和变换矢量与标量的概念1.3 图形处理基本技术光栅图形表示方法矢量图形表示方法图形变换技术1.4 图形软件简介Windows图形子系统OpenGL图形库DirectX图形库第二章:二维图形绘制基础2.1 基本绘图命令画点、画线、填充图形使用不同颜色和线型2.2 图形属性设置颜色、线型、字体、大小等属性图形对象的属性和方法2.3 图形变换平移、旋转、缩放镜像和对称矩阵运算2.4 图形裁剪非齐次裁剪齐次裁剪裁剪算法实现第三章:三维图形绘制基础3.1 三维坐标系统右手坐标系和左手坐标系世界坐标系和视图坐标系3.2 三维图形的表示方法三维线条、曲面和体元参数曲线和参数曲面3.3 三维图形变换三维变换(平移、旋转、缩放)四元数和球面插值3.4 光照模型基本光照模型(Lambert、Blinn-Phong)材质属性和纹理映射第四章:图形界面设计4.1 用户界面设计原则设计美观、易用、一致的界面布局、颜色、字体和图标的应用4.2 常用界面控件按钮、输入框、列表框、滑动条等事件处理机制4.3 界面布局方法绝对布局和相对布局表格布局和网格布局4.4 界面美观与用户体验界面美观的要素提高用户体验的方法第五章:图形交互技术5.1 交互技术概述交互技术在图形学中的应用鼠标、键盘和其他输入设备5.2 交互操作选择、拖动、缩放、旋转等操作交互式绘图和建模5.3 事件处理事件类型和事件处理函数回调和事件队列5.4 图形对话框和消息框创建图形对话框和消息框弹出菜单和工具栏设计第六章:图形算法6.1 图形算法概述图形算法的定义和重要性算法评估标准和性能分析6.2 填充算法扫描线填充算法填充规则和多边形分类抗锯齿技术6.3 裁剪算法凸多边形裁剪凹多边形裁剪球面插值和球面贴图6.4 视图转换投影变换(正交、透视)视图矩阵和视锥体视图空间的裁剪第七章:曲面建模7.1 曲面建模基础参数曲面和非参数曲面曲线和曲面的拟合方法7.2 贝塞尔曲线和曲面贝塞尔曲线和曲面的定义贝塞尔族的性质和构造方法7.3 B样条曲线和曲面B样条曲线和曲面的定义B样条族的性质和构造方法7.4 细分曲面细分曲面的基本概念细分曲面的构造算法第八章:渲染技术8.1 渲染基础渲染管线和渲染流程光栅化技术和抗锯齿8.2 材质和光照模型材质属性及其对渲染的影响基于物理的渲染和实时渲染技术8.3 阴影技术软阴影和硬阴影阴影映射技术8.4 全局光照和实时光照全局光照模型(BSSRDF)实时光照模拟(基于物理的渲染)第九章:动画与虚拟现实9.1 动画基础动画的类型和制作方法关键帧动画和动力学模拟9.2 骨骼动画和蒙皮技术骨骼结构和解算方法蒙皮算法的实现9.3 虚拟现实技术虚拟现实的概念和应用领域VR硬件设备和软件平台9.4 增强现实技术增强现实的概念和原理AR应用案例和开发工具第十章:计算机图形学项目实践10.1 项目实践概述项目选题和需求分析项目进度管理和团队协作10.2 项目设计与实现技术选型和工具链选择项目模块划分和实现细节10.3 项目测试与优化功能测试和性能测试优化方法和技巧10.4 项目汇报与总结项目汇报的准备和注意事项项目经验和教训的总结重点解析计算机图形学的基本概念和图形学与图像学的区别图形学中的点、线、面、体的表示和坐标系统、变换图形表示方法:光栅图形和矢量图形图形软件:Windows图形子系统、OpenGL图形库、DirectX图形库二维图形绘制基础:绘图命令、图形属性、图形变换、图形裁剪三维图形绘制基础:三维坐标系统、三维图形表示方法、三维图形变换、光照模型图形界面设计:界面设计原则、常用界面控件、界面布局方法、界面美观与用户体验图形交互技术:交互技术概述、交互操作、事件处理、图形对话框和消息框图形算法:填充算法、裁剪算法、视图转换曲面建模:参数曲面、贝塞尔曲线和曲面、B样条曲线和曲面、细分曲面渲染技术:渲染基础、材质和光照模型、阴影技术、全局光照和实时光照动画与虚拟现实:动画基础、骨骼动画和蒙皮技术、虚拟现实技术、增强现实技术计算机图形学项目实践:项目实践概述、项目设计与实现、项目测试与优化、项目汇报与总结图形学中复杂图形的绘制和处理技术图形算法的优化和性能分析三维图形的纹理映射和曲面建模技术实时渲染技术和基于物理的渲染方法动画制作和虚拟现实应用的开发和实践项目实践中的团队协作和项目管理技巧。

计算机图形学课程设计

计算机图形学课程设计

计算机图形学课程设计一、课程目标知识目标:1. 让学生掌握计算机图形学的基本概念、基本原理和基本算法,如二维图形的表示、变换、裁剪和三维图形的建模、光照模型等。

2. 使学生了解计算机图形学在实际应用中的发展现状和前景,如虚拟现实、计算机辅助设计等。

3. 帮助学生建立计算机图形学与相关学科(如数学、物理、艺术等)的联系,提高跨学科素养。

技能目标:1. 培养学生运用计算机图形学知识解决实际问题的能力,如使用相关软件进行二维绘图、三维建模等。

2. 提高学生的编程能力,使其能够使用至少一种计算机图形学编程库(如OpenGL、DirectX等)实现基本图形绘制和动画效果。

3. 培养学生的团队协作能力和沟通表达能力,通过小组项目实践,共同完成具有一定难度的计算机图形学任务。

情感态度价值观目标:1. 激发学生对计算机图形学的兴趣,培养其主动探究、创新实践的精神。

2. 培养学生具有良好的审美观,能够从美学的角度评价和优化计算机生成的图形。

3. 强化学生的版权意识,尊重他人知识产权,遵循学术道德,树立正确的价值观。

本课程针对高中年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果,以便于后续的教学设计和评估。

通过本课程的学习,期望学生能够掌握计算机图形学的基础知识,提高实际操作技能,培养良好的情感态度价值观。

二、教学内容1. 计算机图形学基本概念与历史:介绍计算机图形学的定义、发展历程、应用领域及发展趋势。

- 教材章节:第一章 计算机图形学概述- 内容安排:1课时2. 二维图形的表示与处理:讲解二维图形的数学表示、几何变换、裁剪算法等。

- 教材章节:第二章 二维图形处理- 内容安排:4课时3. 三维图形的建模与渲染:介绍三维图形的建模方法、光照模型、纹理映射等。

- 教材章节:第三章 三维图形处理- 内容安排:5课时4. 计算机动画与视觉效果:探讨计算机动画原理、关键帧动画、粒子系统等视觉效果技术。

- 教材章节:第四章 计算机动画与视觉效果- 内容安排:4课时5. 计算机图形学编程实践:学习计算机图形学编程库(如OpenGL、DirectX 等)的基本使用,完成二维和三维图形绘制实例。

计算机图形学(C语言)教案

计算机图形学(C语言)教案

计算机图形学(C语言)教案第一章:计算机图形学概述1.1 课程介绍介绍计算机图形学的定义、发展和应用领域。

解释图形和图像的区别。

1.2 图形学基本概念什么是点、线、面和体。

坐标系统和变换。

图形表示方法和存储结构。

1.3 图形处理流程图形输入、输出和显示。

图形裁剪和映射。

图形渲染和着色。

1.4 常见图形算法直线、圆和椭圆的算法。

填充算法和图像处理算法。

第二章:C语言基础2.1 C语言简介介绍C语言的历史和特点。

解释C语言在计算机图形学中的应用。

2.2 基本数据类型和语法整型、浮点型、字符型数据。

变量、常量和运算符。

2.3 控制语句条件语句和循环语句。

分支语句和循环控制语句。

2.4 函数和数组函数的定义和调用。

一维、二维数组和字符串。

第三章:图形库和API3.1 图形库简介什么是图形库和API。

常见的图形库和API介绍。

3.2 图形库的使用方法图形库的安装和配置。

图形库的基本函数和功能。

3.3 图形API的调用过程初始化图形环境。

创建图形对象和操作图形对象。

处理图形事件和关闭图形环境。

3.4 示例:绘制简单的图形使用图形库绘制点、线、圆等基本图形。

调整图形属性和颜色。

第四章:图形绘制和变换4.1 图形绘制基础绘制基本图形和文本。

使用图形属性调整图形外观。

4.2 图形变换坐标变换和几何变换。

矩阵和变换矩阵的运算。

4.3 图形裁剪和映射裁剪原理和算法。

映射原理和算法。

4.4 示例:绘制复杂的图形使用图形变换绘制复杂的图形。

应用图形裁剪和映射技术。

第五章:图形渲染和着色5.1 图形渲染基础什么是图形渲染和着色。

光和材质的模型。

5.2 颜色模型和转换RGB颜色模型和HSV颜色模型。

颜色转换和混合。

5.3 图形着色和光照基本着色算法和纹理映射。

点光源、聚光灯和环境光。

5.4 示例:实现简单的光照效果使用图形着色和光照技术绘制三维图形。

调整光照参数和观察光照效果。

第六章:图形界面设计6.1 图形界面设计基础界面设计原则和概念。

计算机图形学教案

计算机图形学教案

计算机图形学教案第一章:计算机图形学概述1.1 课程介绍计算机图形学的定义计算机图形学的发展历程计算机图形学的应用领域1.2 图形与图像的区别图像的定义图形的定义图形与图像的联系与区别1.3 计算机图形学的基本概念像素与分辨率矢量与栅格颜色模型图像文件格式第二章:二维图形基础2.1 基本绘图函数画点函数画线函数填充函数2.2 图形变换平移变换旋转变换缩放变换2.3 图形裁剪矩形裁剪贝塞尔曲线裁剪多边形裁剪第三章:三维图形基础3.1 基本三维绘图函数画点函数画线函数填充函数3.2 三维变换平移变换旋转变换缩放变换3.3 光照与材质基本光照模型材质的定义与属性光照与材质的实现第四章:图像处理基础4.1 图像处理基本概念像素的定义与操作图像的表示与存储图像的数字化4.2 图像增强对比度增强锐化滤波4.3 图像分割阈值分割区域生长边缘检测第五章:计算机动画基础5.1 动画基本概念动画的定义与分类动画的基本原理动画的制作流程5.2 关键帧动画关键帧的定义与作用关键帧动画的制作方法关键帧动画的插值算法5.3 骨骼动画骨骼的定义与作用骨骼动画的制作方法骨骼动画的插值算法第六章:虚拟现实与增强现实6.1 虚拟现实基本概念虚拟现实的定义与分类虚拟现实技术的关键组件虚拟现实技术的应用领域6.2 虚拟现实实现技术头戴式显示器(HMD)位置追踪与运动捕捉交互设备与手势识别6.3 增强现实基本概念与实现增强现实的定义与原理增强现实技术的应用领域增强现实设备的介绍第七章:计算机图形学与人类视觉7.1 人类视觉系统基本原理视觉感知的基本过程人类视觉的特性和局限性视觉注意和视觉习惯7.2 计算机图形学中的视觉感知视觉感知在计算机图形学中的应用视觉线索和视觉引导视觉感知与图形界面设计7.3 图形学中的视觉错误与解决方案常见视觉错误分析避免视觉错误的方法提高图形可读性与美观性第八章:计算机图形学与艺术8.1 计算机图形学在艺术创作中的应用数字艺术与计算机图形学的交融计算机图形学工具在艺术创作中的使用计算机图形学与艺术的创新实践8.2 计算机图形学与数字绘画数字绘画的基本概念与工具数字绘画技巧与风格数字绘画作品的创作与展示8.3 计算机图形学与动画电影动画电影制作中的计算机图形学技术3D动画技术与特效制作动画电影的视觉艺术表现第九章:计算机图形学的未来发展9.1 新兴图形学技术的发展趋势实时图形渲染技术基于物理的渲染动态图形设计9.2 计算机图形学与其他领域的融合计算机图形学与的结合计算机图形学与物联网的结合计算机图形学与生物医学的结合9.3 计算机图形学教育的未来发展图形学教育的重要性图形学教育的发展方向图形学教育资源的整合与创新第十章:综合项目实践10.1 项目设计概述项目目标与需求分析项目实施流程与时间规划项目团队组织与管理10.2 项目实施与技术细节项目技术选型与工具使用项目开发过程中的关键技术项目测试与优化10.3 项目成果展示与评价项目成果的展示与推广项目成果的评价与反馈重点和难点解析一、图像的定义与图像的定义,图形与图像的联系与区别1. 学生是否能够理解并区分图像和图形的概念。

计算机图形学-期末课程设计

计算机图形学-期末课程设计

图形学课程设计报告题目:系别:班级:学号:姓名:指导老师:目录诚信说明......................................................................................................... 错误!未定义书签。

目录 .. (1)一、项目描述 (2)1.1项目的目的 (2)二、项目需求 (2)2.1需求分析 (2)2.2功能描述 (2)三、项目设计 (3)3.1直线扫描算法 (3)3.1.1 DAA扫描线算法 (3)3.1.2 中点扫描线算法 (3)3.1.3 Bresenham扫描线算法 (3)3.2圆的扫描算法 (4)3.2.1 中点画圆扫描算法 (4)3.2.2 Bresenham画圆扫描算法 (4)3.3种子填充算法 (4)3.4图形的基本几何变换算法 (4)3.4.1平移 (4)3.4.2旋转 (5)3.4.3伸缩 (5)3.5 Bezier曲线算法 (5)四、项目效果 (5)五、项目总结 (10)六、参考文献 (11)七、附录 (11)一、项目描述1.1项目的目的通过本次课程设计,使自己了解计算机图形学的有关原理、算法及系统,掌握基本图形显示程序设计方法,及二维和三维图形基本几何变换程序设计方法,为进一步学习计算机辅助设计方面的技术知识打下基础。

1.掌握图形学直线扫描算法:DDA,中点扫描线算法,Bresenham扫描线算法2.掌握图形学画圆扫描算法:中点画圆算法和Bresenham扫描算法3.掌握简单的几何图形的填充算法:种子填充和扫描线填充算法4.掌握简单图形的基本几何变换:平移,旋转和伸缩5.掌握Bezier曲线的生成算法6.熟悉并掌握vc6.0中的MFC使用方法7.掌握C/C++语言编程方法8.在学习基础上设计一个基于MFC的画图软件1.2项目内容在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的画图设计工具也越来越多,类似CAD和CDM及Photoshop的画图软件和图片处理软件的发展也日新月异,因此产生了制作一个类似的画图软件;而且通过制作该程序还能更好的学习图形学编程知识。

计算机图形学课程设计安排

《计算机图形学》课程设计要求及安排一.实习目的《计算机图形学实习》是实践性教学环节之一,是《计算机图形学》课程的辅助教学课程。

通过实习,达到如下目的:(1)巩固和综合应用所学的计算机图形学理论知识,培养学生理论联系实际和独立思考问题的能力;(2)培养学生实际运用《计算机图形学》的知识设计计算机课题的思想和方法;(3)培养学生分析、设计和解决实际问题的能力,加强创新素质教育,激发学生的实际开发创造意识和能力;(4)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力;(5)培养学生团结协作,共同完成相关课题的能力。

二.实习内容及要求要求学生在理解直线、圆、区域填充、图形裁剪等理论知识的基础上,借助于程序设计语言(如VC++、VB等)进行小型图形应用软件的开发,要求界面美观(包括菜单栏、工具栏)、功能相对完整、衔接自然、注重交互性。

主要知识点包括:(1)点、线、圆、多边形等计算机基本图元的的绘制(必做)(2)点、线、圆、多边形等计算机基本图元属性的设置(3)平移、缩放、旋转等计算机图形的几何变换(必做)(4)图形的裁剪(5)平面投影和透视投影(6)样条曲线、曲面的绘制(7)三维图形的真实感实现学生可以在实习老师的指导下,按3-5人为一小组完成一个简易图形系统的设计与开发,系统实现内容要求包括以上至少4个知识点(包括必做知识点,其它任选或自己设计),并完成实习文档;或者独立一人完成一项创新性,综合性较强的设计开发项目,并完成实习文档。

实习文档与结果要求标准化,即按规定的格式书写并提交。

三.考核方式及办法根据学生任务完成的情况、设计报告的质量及平时的学习态度等全面评定成绩。

学期成绩考核为五级记分制。

百分制与五级记分制的换算关系为:优秀(90—100分)、良好(80—89分)、中等(70—79分)、及格(60—69分)、不及格(60分以下)。

考核参考标准:以实际操作技能和分析解决问题的能力为主,实习考核内容各单项所占分数比例为:操作技能占60%,实习报告(作业或作品)占40%。

计算机图形学课程教学设计报告

一、设计内容与要求1.1、设计题目算法实现时钟运动1.2、总体目标和要求(1)目标:以图形学算法为目标,深入研究。

继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。

通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。

(2)总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。

(3)开发环境:Viusal C++ 6.01.3、设计要求内容:(1)掌握动画基本原理;(2)实现平面几何变换;功能要求:(1)显示时钟三个时针,实现三根时针间的相互关系;(2)通过右键菜单切换时钟背景与时针颜色;1.4设计方案通过使用OpenGL提供的标准库函数,综合图形学Bresenham画线和画圆的算法,OpenGL颜色模型中颜色表示模式等实现指针式时钟运动,并通过点击右键菜单实习时钟背景与时针颜色的转换。

根据Bresenham画线和画圆的算法,画出时钟的指针和表盘。

再根据OpenGL颜色模型定义当前颜色。

设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。

最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。

二、总体设计2.1、过程流程图2.2、椭圆的中点生成算法1、椭圆对称性质原理:(1)圆是满足x轴对称的,这样只需要计算原来的1/2点的位置;(2)圆是满足y轴对称的,这样只需要计算原来的1/2点的位置;通过上面分析可以得到实际上我们计算椭圆生成时候,只需要计算1/4个椭圆就可以实现对于所有点的生成了。

2、中点椭圆算法内容:(1)输入椭圆的两个半径r1和r2,并且输入椭圆的圆心。

设置初始点(x0,y0)的位置为(0,r2);(2)计算区域1中央决策参数的初始值p = ry*ry - rx*rx*ry + 1/4*(rx*rx);(3)在区域1中的每个Xn为止,从n = 0 开始,直到|K|(斜率)小于-1时后结束;<1>如果p < 0 ,绘制下一个点(x+1,y),并且计算p = p + r2*r2*(3+2*x);<2>如果P >=0 ,绘制下一个点(x+1,y-1),并且计算p = p + r2*r2*(3+2*point.x) - 2*r1*r1*(y-1)(4)设置新的参数初始值;p = ry*ry(X0+1/2)*(X0+1/2) + rx*rx*(Y0-1) - rx*rx*ry*ry;(5)在区域2中的每个Yn为止,从n = 0开始,直到y = 0时结束。

计算机图形学课程设计

目录一、课程设计任务及要求 (1)二、需求分析 (1)2.1 设计目标 (1)2.2 设计环境 (2)2.2.1 VC++6.0 (2)2.2.2 MFC (2)2.3 设计题目及要求 (2)三、总体设计 (3)3.1 绘图 (3)3.1.1 直线 (3)3.1.2 正三角形 (4)3.1.3 矩形 (4)3.2 变换类型 (5)3.2.1 平移变换 (5)3.2.2 比例变换 (6)3.2.3 旋转变换 (6)3.2.4 反射变换 (6)3.2.5 错切变换 (7)3.3 复位 (7)四、详细设计 (8)4.1 平移变换 (8)4.1.1 向左 (8)4.1.2 向右 (8)4.1.3 向上 (9)4.1.4 向下 (10)4.2 比例变换 (11)4.2.1 放大 (11)4.2.2 缩小 (12)4.3 旋转变换 (12)4.3.1 逆时针 (12)4.3.2 顺时针 (13)4.4 反射控制 (14)4.4.1 X轴 (14)4.4.2 Y轴 (15)4.4.3 原点 (15)4.5 错切变换 (16)4.5.1 X正方向 (16)4.5.2 X负方向 (17)4.5.3 Y正方向 (17)4.5.4 Y负方向 (18)五、运行调试与分析讨论 (20)六、设计体会与小结 (20)七、参考文献 (21)计算机图形学课程设计一、课程设计任务及要求利用VC++设计实现二维图形变换:1、学会使用VC++和MFC编写实现图形的绘制变换,需包括直线、正三角形、矩形的绘制和变换2、建立图形信息输入窗口,来输入图形的几何信息、拓扑信息和属性信息等3、建立图形变换参数输入窗口,来输入图形的基本几何变换参数4、熟练掌握平移变化、比例变换、、旋转变化、反射变换和错切变换。

5、其他功能:如复位、退出功能。

二、需求分析计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。

计算机图形学课程设计----课程设计

计算机图形学课程设计学 院:计算机科学学院 班 级:学 号:学生姓名:指导教师:2008年1月设计一一、课题说明用所学算法编写实现图形比例,移动,旋转变换的程序二、概要设计比例变换矩阵:移动变换矩阵:旋转变换矩阵:由于在640*480默认的显示模式下,原点(0,0)坐标在屏幕的左上角,左上角向右下角走,x 值增大,左上角向右上角走,y 值增大。

为了便于显示与理解,把原点定在(320,240)点。

则移动变换与旋转变换的矩阵就会改变。

移动变换矩阵:旋转变换后,x 坐标变为:320+(x-320)*cos(a)-(240-y)*sin(a);y 坐标变为:240-(x-320)*sin(a)-(240-y)*cos(a)本程序通过一个三角形比例,移动,旋转变换演示比例,移动,旋转后的结果。

首先画出需要变换的三角形(通过给出三角形的三个顶点画出三角形),对三个三角形的顶点变换实现比例,移动,旋转变换操作。

三、源程序及注释#include <stdio.h> #include <graphics.h>/*加入c 图形库*/ #include <math.h>yidong(int dx,int dy)/*实现移动函数*/S x 0 0 0 S y 0 0 0 1 1 0 0 0 1 0 T x T y 1cos (a) sin (a) 0 -sin (a) cos (a) 0 0 0 11 0 00 1 0 T x -- T y 1{moveto(320+dx,240-dy);lineto(420+dx,120-dy);lineto(450+dx,140-dy);变换三角形三个点的坐标实现移动变换*/lineto(320+dx,240-dy);/*}实现比例函数*/bilie(float Sx,float Sy) /*{moveto(320*Sx,240*Sy);lineto(420*Sx,120*Sy);lineto(450*Sx,140*Sy);变换三角形三个点的坐标实现比列变换*/lineto(320*Sx,240*Sy); /*}实现旋转函数*/xuanzhuan(float a) /*{float p;moveto(320,240);lineto(320+(420-320)*cos(a)-(240-120)*sin(a),240-(420-320)*sin(a)-(240-120)*cos(a));lineto(320+(450-320)*cos(a)-(240-140)*sin(a),240-(450-320)*sin(a)-(240-140)*cos(a));变换三角形三个点的坐标实现旋转变换*/lineto(320,240); /*}main(){int i,j;float X,Y,bx,by,a;int gdriver=DETECT,gmode; /*初始化显示模式参数*/初始化显示为默认的640*480、16色模式 */ initgraph(&gdriver,&gmode,""); /*i=20;j=240;moveto(i,j);/*使用双循环画点函数画出表格中的纵坐标*/for(i=20;i<=620;i+=20)lineto(i,240);i=320;j=20;moveto(i,j);/*使用双循环画点函数画出表格中的横坐标*/for(j=20;j<=460;j+=20)lineto(320,j);moveto(320,240);lineto(420,120);lineto(450,140);lineto(320,240);/*画出需变换的三角形,其三个顶点分别为(320,240);(420,120) ;(450,140)*/printf("please input X,Y to move:"); scanf("%f%f",&X,&Y); /*输入移动量 */ yidong(X,Y);printf("please input bx,by to scale:"); scanf("%f%f",&bx,&by); /*输入x 方向,y 方向缩放大小 */ bilie(bx,by);printf("please input a to circumgyrate:"); scanf("%f",&a); /*输入旋转角度,a 为正,则逆时针旋转*/ xuanzhuan(a); }四、运行结果原始三角形移动(40,40)后的三角形旋转45o 后的三角x 轴方向上缩小0.5倍后的三角形设计二一、课题说明编写一个AutoLISP程序,其功能是:画一个轴衬的两个视图,如图4所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、图形基本变换原理
1.平移变换
将图形对象从一个位置(x, y)移到另一个位置(x ′,y ′)的变换,只改变图
形的位置,不改变图形的大小和形状 。

将矩形沿x 轴方向平移tx ,沿y 轴方向的平移距离为ty 。

它只改变物体的
位置,不改变物体的大小和形状。

平移变换的公式为:⎪⎩⎪⎨⎧+Y =Y +X =X y
x t t ''
2.旋转变换
不改变物体的形状和大小,是一种刚性变换。

设P 点的坐标为(x ,y ),使P 点绕坐标原点逆时针旋转θ角(θ>0)到达
P ′点
其计算公式为:
x ′=xcos θ-ysin θ
y ′=xsin θ+ycos θ
3.比例变化
使图形按在x 和y 坐标轴方向分别按比例因子Sx 和Sy 放大或缩小的变换。

改变图形的大小和形状。

设平面上的一个点P 的坐标为(x, y ),经过比例变换后的坐标是(x ′,
y ′),其计算公式为:
x ′=x ·Sx
y ′=y ·Sy 其中,Sx 和Sy 为比例因子。

当Sx =Sy =1时:恒等比例变换
当Sx =Sy >1时:沿x ,y 方向等比例放大。

当Sx =Sy <1时:沿x ,y 方向等比例缩小
当Sx ≠Sy 时:沿x ,y 方向作非均匀的比例变换,图形变形
二、实现代码
#include <graphics.h>
#include <math.h>
void DrawStar(float x, float y, float r, float b){
int i; float px[19],py[19];
for(i = 2; i <= 16;i = i + 2){
px[i] = x + r * sin((i - 1) * M_PI / 8 +
b);
py[i] = y - r * cos((i - 1) * M_PI / 8 + b);
}
px[1] = x + 2.5 * r * sin(b);
px[9] = x - 2.5 * r * sin(b);
py[1] = y - 2.5 * r * cos(b);
py[9] = y + 2.5 * r * cos(b);
for(i = 3; i <= 15; i += 4){
px[i] = x + 2 * r * sin((i - 1) * M_PI / 8 + b);
py[i] = y - 2 * r * cos((i - 1) * M_PI / 8 + b);
}
px[5] = x + 1.5 * r * cos(b);
px[13] = x - 1.5 * r * cos(b);
py[5] = y + 2 * r * sin(b);
py[13] = y - 2 * r * sin(b);
for(i = 1; i < 16; i++)
line(px[i], py[i], px[i + 1], py[i + 1]);
line(px[1], py[1], px[16], py[16]);
for(i=1; i<= 16; i++)
line(x, y, px[i], py[i]);
}
void main(){
int i; float b = 0, x = 320, y = 240, r = 40;
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\");
for(i = 0; i < 10; i++){
cleardevice();
r += 5;
DrawStar(x, y, r, b);
delay(100);
}
for(i = 0; i < 15; i++){
cleardevice();
r -= 4;
DrawStar(x, y, r, b);
delay(100);
}
for(i = 0; i < 10; i++){
cleardevice();
x += 15;
DrawStar(x, y, r, b);
delay(100);
}
for(i = 0; i < 10; i++){
cleardevice();
y += 10;
DrawStar(x, y, r, b);
delay(100);
}
for(i = 0; i <= 32; i++){
cleardevice();
DrawStar(x, y, r, i * M_PI / 32);
delay(100);
}
getch();
closegraph();
}
三、图形变换结果
四、总结
通过本次课程设计,掌握了图形的平移变换、旋转变换、比例变换等基本图形变换方法,同时对图形学这门课有了更深的了解,在设计过程中还存在着不足,仍需多加努力.。

相关文档
最新文档