当前位置:文档之家› 计算机图形学 (中点画线)

计算机图形学 (中点画线)

计算机图形学 (中点画线)
计算机图形学 (中点画线)

西北师范大学计算机科学与工程学院学生实验报告

计算机图形学基础教程习题课1第二版孙家广胡事民编著

1.列举计算机图形学的主要研究内容。 计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。 图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。 2.常用的图形输出设备是什么? 显示器(CRT、LCD、等离子)、打印机、绘图仪等。 2.常用的图形输入设备是什么? 键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。 3.列出3种图形软件工具。 AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photoshop、PaintShop、Visio、3DMAX、MAY A、Alias、Softimage等。 错误:CAD 4.写出|k|>1的直线Bresenham画线算法。 d d d d 设直线方程为:y=kx+b,即x=(y-b)/k,有x i+1=x i+(y i+1-y i)/k = x i+1/k,其中k=dy/dx。因为直线的起始点在象素中心,所以误差项d的初值d0=0。y下标每增加1,d的值相应递增1/k,即d=d+1/k。一旦d≥1,就把它减去1,这样保证d在0、1之间。 ●当d≥0.5时,最接近于当前象素的右上方象素(x i+1,y i+1),x方向加1,d减 去1; ●而当d<0.5时,更接近于上方象素(x i,y i+1)。 为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。

●当e≥0时,取当前象素(x i,y i)的右上方象素(x i+1,y i+1),e减小1; ●而当e<0时,更接近于上方象素(x i,y i+1)。 void Bresenhamline (int x0,int y0,int x1, int y1,int color) { int x, y, dx, dy; float k, e; dx = x1-x0, dy = y1-y0, k=dy/dx; e=-0.5, x=x0, y=y0; for (i=0; i≤dy; i++) { drawpixel (x, y, color); y=y+1,e=e+1/k; if (e≥0) { x++, e=e-1;} } } 4.写出|k|>1的直线中点画线算法。 构造判别式:d=F(M)=F(x p+0.5,y p+1)=a(x p+0.5)+b(y p+1)+c ●当d<0,M在Q点左侧,取右上方P2为下一个象素; ●当d>0,M在Q点右侧,取上方P1为下一个象素; ●当d=0,选P1或P2均可,约定取P1为下一个象素; 增量计算: ●若d≥0,取正上方象素P1 (x p, y p+1),要判下一个象素位置,应计算

计算机图形学输出直线实验报告

六盘水师范学院计科系本科班计算机图形学实验报告 系别:计科系 课程名称:计算机图形学 班级:本科 学号:114077031057 学生姓名:郑月儒 一、实验目的 1、了解和使用开发环境; 2、熟悉MFC上机操作步骤; 3、熟悉基本图形函数的使用。 二、实验环境 1、操作系统Windows7旗舰版 2、Microsoft Visual C++6.0 3、PC 三、实验人数 5人 四、实验内容 在屏幕上绘制一条直线。 五、实验步骤 (1)进入Microsoft Visual C++6.0集成开发环境后,选择“文件-新建”菜单,弹出“新建”对话框。单击“工程”标签,打开其选项卡,在其左边的列表框中选择MFC AppWizard(EXE)工程类型,在

“工程名称”文本框输入工程名,在“位置”中选择工程路径。如果是第一个工程文件,则必须创建一个新的工作区,选择“创建新的工作空间”,在“平台”编辑框中选择“Win32”。 (2)单击“确定”按钮,现实“MFC应用程序向导-步骤1”对话框,选择“单文档”选项。 (3)单击“完成”按钮,系统弹出“新建工程信息”对话框。(4)单击“确定”按钮,就完成了应用程序的自动生成,在指定的目录下生成了应用程序框架所必需的全部文件,并且可以以直接运行。 (5)选择“组建-执行”。因为是第一次执行,没有生成可执行文件.EXE,提示是否生成,选择“是”,则系统进行编译及连接,生成可执行文件,并运行。、 (6)在窗口左边工作区“FileView”标签中,选择graphicView.cpp 文件,在voidCGraphicView::OnDraw(CDC*pDC)函数中添加如下代码:pDC->SetPixel(100,100,RGB(0,0,0)); pDC->MoveTo(0,0); pDC->LineTo(1000,415); (7)运行程序,得到实验结果。 六、实验效果(含程序运行主要截图)

计算机图形学试题附答案完整版

名词解释 将图形描述转换成用像素矩阵表示的过程称为扫描转换。 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 三、填空 1.图形软件的建立方法包括提供图形程序包、和采用专用高级语言。 2.直线的属性包括线型、和颜色。 3.颜色通常用红、绿和蓝三原色的含量来表示。对于不具有彩色功能的显示系统,颜色显示为。 4.平面图形在内存中有两种表示方法,即和矢量表示法。 5.字符作为图形有和矢量字符之分。 6.区域的表示有和边界表示两种形式。 7.区域的内点表示法枚举区域内的所有像素,通过来实现内点表示。 8.区域的边界表示法枚举区域边界上的所有像素,通过给赋予同一属性值来实现边界表示。 9.区域填充有和扫描转换填充。 10.区域填充属性包括填充式样、和填充图案。 11.对于图形,通常是以点变换为基础,把图形的一系列顶点作几何变换后,

连接新的顶点序列即可产生新的变换后的图形。 12.裁剪的基本目的是判断图形元素是否部分或全部落在之内。 13.字符裁剪方法包括、单个字符裁剪和字符串裁剪。 14.图形变换是指将图形的几何信息经过产生新的图形。 15.从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为。 16.实体的表面具有、有界性、非自交性和闭合性。 17.集合的内点是集合中的点,在该点的内的所有点都是集合中的元素。 18.空间一点的任意邻域内既有集合中的点,又有集合外的点,则称该点为集合的。 19.内点组成的集合称为集合的。 20.边界点组成的集合称为集合的。 21.任意一个实体可以表示为的并集。 22.集合与它的边界的并集称集合的。 23.取集合的内部,再取内部的闭包,所得的集合称为原集合的。 24.如果曲面上任意一点都存在一个充分小的邻域,该邻域与平面上的(开)圆盘同构,即邻域与圆盘之间存在连续的1-1映射,则称该曲面为。 25.对于一个占据有限空间的正则(点)集,如果其表面是,则该正则集为一个实体(有效物体)。 26.通过实体的边界来表示一个实体的方法称为。 27.表面由平面多边形构成的空间三维体称为。 28.扫描表示法的两个关键要素是和扫描轨迹。 29.标量:一个标量表示。 30.向量:一个向量是由若干个标量组成的,其中每个标量称为向量的一个分量。 四、简答题 1. 什么是图像的分辨率?

《产品设计及开发》教学大纲和实验大纲

《产品设计及开发》教学大纲 大纲说明 课程代码:3335007 总学时:64学时(讲课64学时) 总学分:4学分 课程类别:选修 适用专业:工业设计(本科) 预修要求:工业设计机械基础、形态设计基础、设计构成等 一、课程的性质、目的、任务: 本课程是工业设计专业的一门指导性专业课。通过本课程的学习和训练,使学生把握将市场营销、设计和制造的观点融为一体开发产品的整体思路;了解开发流程和组织、产品规划过程和产品开发项目管理的基本知识,掌握产品构造、产品开发项目的经济分析的基本常识。 二、课程教学的基本要求: 课程教学采用启发、观摩、演练式教学,加深学生对相应知识的理解。使用一些案例来说明产品开发方法,由浅入深,难易搭配,循序渐进。以培养能力为主题,要求学生积极参与,独立完成简单产品的开发,掌握开发产品的基本技能和技巧。 考核形式为考试。主要考查学生对基本概念的理解和应用。 三、大纲的使用说明: 教师可根据本课程发展情况、学生水平等实际情况对教学内容作适当的调整和变动。拟采用双语教学。 大纲正文 第一章引论学时:2学时(讲课2学时) 了解成功的产品开发的特点和产品开发的时间和成本,了解本课程特点。 本章讲授要点:产品开发的特点,产品开发的时间和成本,产品开发的挑战。 重点:产品开发的时间和成本。 难点:产品开发的特点。 第一节成功的产品开发的特点 第二节谁来设计和开发产品? 第三节产品开发的时间和成本 第四节产品开发的挑战 习题:估计在一个计算机的价格中,产品开发成本占多大比例。 第二章开发流程和组织学时:4学时(讲课4学时)

掌握基本的产品开发流程、概念开发流程,了解AMF公司的开发流程、产品开发组织。 本章讲授要点:产品开发流程、首末流程。 重点:产品开发流程。 难点:概念开发:首末流程 第一节基本的产品开发流程 第二节概念开发:首末流程 第三节采用基本的产品开发流程 第四节AMF公司的开发流程 第五节产品开发组织 习题:产品开发组织对于那些作为产品开发班的一部分而介入的学生来说,是什么? 第三章产品规划学时:4学时(讲课4学时) 掌握产品规划过程及其方法步骤。 本章讲授要点:产品规划过程,识别机会、项目评价和优先级排序、资源分配和时间计划、完成项目计划、对结果和流程做出反应。 重点:产品规划过程 难点:识别机会 第一节产品规划过程 第二节产品规划过程的方法步骤 习题:对选定产品进行开发过程规划。 第四章识别顾客需要学时:5学时(讲课5学时) 了解识别顾客需要的方法,理解建立需要的相对重要性,掌握对结果和流程做出反应的基本方法。 本章讲授要点:顾客需要、建立需要的相对重要性、对结果和流程做出反应。 重点:识别顾客需要。 难点:建立需要的相对重要性 第一节从顾客那里获取原始数据 第二节从顾客需要的角度理解原始数据 第三节组织需要的等级 第四节建立需要的相对重要性 第五节对结果和流程做出反应 习题:过大开发团队(多于10个人时)的有效调整方法。 第五章产品规格说明学时:5学时(讲课5学时) 了解什么是规格说明、何时建立规格说明、确定最终规格。掌握建立目标规格说明的方法。

图形与可视化 实验大纲

《图形与可视化》课程实验教学大纲 编号: 课程总学时:64 实验学时:24 课程总学分:3.5 实验学分:(非单独设课的实验不用填此项) 先修课程:线性代数、C++与OO程序设计 适用专业:计算机科学与技术 一、本课程实验的主要目的与任务 《图形与可视化》是计算机科学与技术专业本科教学中的一门重要的专业课。通过本课程的教学,帮助学生掌握图形与可视化的基础知识,了解该学科的前沿科技,并能运用图形软件包OpenGL,进行简单的图像处理软件代码设计。 《图形与可视化》是一门理论性和应用性很强的课程。开设实验课程有助于加深学生对图形算法的理解,培养其分析问题,解决问题的能力。 通过本课程实验要求学生基本达到如下要求: 1. 掌握OpenGL的基本语法与程序结构。 2. 掌握如何通过点、线、面、体的构造方法。 3. 掌握如何对三维物体增加光照和纹理来增强其真实感。 4. 掌握如何构建一个真实的三维场景的基本过程和实现方法。 二、本课程实验应开设项目 三、各实验项目主要实验内容和基本要求 实验1 直线绘制算法( 4学时) 1.实验目的 (1) 了解OpenGL的基本的编程思想和程序结构。 (2) 了解OpenGL中绘制点、线、面的相关函数。 (3) 掌握如果通过定义空间点和构成方式来形成不同的空间物体。

2.实验内容 (1) 熟悉实验环境。 (2) 利用相关直线绘制算法绘制一条直线,建议使用DDA算法或Bresenham算法。 (3) 绘制一个颜色插值的三角形面。 (4) 综合利用所学知识,绘制分形物体。给出原理,步骤,设计绘制方案。可自己选择分形物体的类型,如分形树、Koch雪花、Sierpinski三角形(二维或三维)、Julia集、Mandelbrot集等。 3.实验要求 (1) 预习实验相关知识,了解实验目的与内容。 (2) 根据实验目的和内容,制定相关的实验方案并进行实施。 (3) 实验结束后,对相关内容进行总结和反思。 4.实验器材 (1) PC机及配套软件、一人一套。 实验2 曲线与曲面(4学时) 1.实验目的 (1) 掌握Bezier曲线和Hermite曲线的绘制方法。理解如何通过折线来近似一条曲线。 (2) 了解Bezier曲面和Hermite曲面的绘制方法。 2.实验内容 (1) 绘制一条四阶Bezier曲线或者Hermite曲线。 (2) 要求控制点、控制多边形、Bezier曲线或Hermite曲线用不同颜色表示。 (3) 掌握如何控制点、线的属性。 (4) 要求有能力的同学能够实现Bezier曲面或者Hermite曲面。 (5) 了解Utah茶壶的Bezier曲面构造方法。 3.实验要求 (1) 预习实验相关知识,了解实验目的与内容。 (2) 根据实验目的和内容,制定相关的实验方案并进行实施。 (3) 实验结束后,对相关内容进行总结和反思。 4.实验器材 (1) PC机及配套软件、一人一套。 实验3 体的表示与变换( 4学时) 1.实验目的 (1) 掌握三维形体的数据表示与存储。 (2) 掌握二维和三维几何变换的矩阵形式。 (3) 掌握视图变换的矩阵表达。 (4) 理解世界坐标系与观察坐标系的相对关系。 (5) 理解几何变换的实质是矩阵操作。 (6) 掌握平行投影、透视投影。 (7) 隐藏面消除、深度测试的基本原理。 (8) 使用多边形网格建模并进行变换。 2.实验内容

计算机图形学实验一_画直线

大学实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

如果 d<0,则M在理想直线下方,选右上方P1点; 如果 d=0,则M在理想直线上,选P1/ P2点。 由于d是xi和yi的线性函数,可采用增量计算提高运算效率。 1.如由pi点确定在是正右方P2点(d>0).,则新的中点M仅在x方向加1,新的d值为: d new=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a= d old-dy 2.如由pi点确定是右上方P1点(d<0),则新的中点M在x和y方向都增加1,新的d值为 d new=F(xi+2,yi+1.5)=a(xi+2)+b(yi+1.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a+b= d old-dy+dx 在每一步中,根据前一次第二迭中计算出的d值的符号,在正右方和右上方的两个点中进行选择。d的初始值: d0=F(x0+1,y0+0.5)=F(x0,y0)+a+b/2=a+b/2=-dy+dx/2 F(x0,y0)=0,(x0,y0)在直线上。 为了消除d的分数,重新定义 F(x,y)=2(ax+by+c) 则每一步需要计算的d new 是简单的整数加法 dy=y1-y0,dx=x1-x0 d0=-2dy+dx d new=d old-2*dy,当 d old>=0 d new=d old-2(dy-dx),当d old<0 Bresenham画线算法 算法原理: 与DDA算法 相似,Bresenham 画线算法也要在 每列象素中找到 与理想直线最逼 近的象素点。 根据直线的 斜率来确定变量 在x或y方向递 增一个单位。另 一个方向y或x

计算机图形学基础期末考试试题

一、填空题 1.将多边形外部一点A与某一点B用线段连接,若此线段与多边形边界相交的次数为??????????,则点B在多边形外部。若此线段与多边形边界相交的次数为??????????,则点B在多边形内部。 2.生成直线的四点要求是_______________________,____________________________,____________________________________,速度要快。 3.由5个控制顶点Pi(i=0,1,…4)所决定的3次B样条曲线,由??????????段3次B样条曲线段光滑连接而成。 4.用于减少或克服在“光栅图形显示器上绘制直线、多边形等连续图形时,由离散量表示连续量引起的失真”的技术叫??????????。 5.图形的数学表示法一般有??????????,??????????,??????????。 1.一个交互性的计算机图形系统应具有、、、、 输入等五方面的功能。 2.阴极射线管从结构上可以分为、和。 3.常用的图形绘制设备有和,其中支持矢量格式。 4.PHIGS和GKS将各种图形输入设备从逻辑上分为六种:定位设备、笔划设 备、、、和。 5.通常可以采用和处理线宽。 6.齐次坐标表示就是用维向量表示n维向量。 7.平行投影根据可以分为投影和投影。 8.一个交互式计算机图形处理系统包括图形软件和_____________,图形软件又分为 _____________、_____________和三部分。 9.构成图形的要素包括和,在计算机中通常用采用两种方法来表示 图形,他们是和。 10.荫罩式彩色显像管的结构包括、、和。 11.目前常用的PC图形显示子系统主要由3个部件组成:、和一 个ROM BIOS芯片。 12.在交互输入过程中,图形系统中有_____________、、和其组 合形式等几种输入(控制)模式。 13.填充一个特定区域,其属性选择包括、和。 14.计算机中表示带有颜色及形状信息的图和形常用和参数法,其中用参数法描 述的图形称为,用描述的图形称为。 15.在显示技术中,我们常常采用提高总的光强等级。 16.常用的交互式绘图技术有、、和。

土木工程CAD考试大纲

《土木工程CAD》考试大纲 第一部分期末考试说明 一、期末考试要求 1.土木工程CAD是土木工程科学中一个比较年轻的分支学科,它的核心内容是研究如何运用计算机处理土木工程设计中的信息。本课程要求学生了解计算机技术在土木工程中应用的最新发展,掌握CAD技术的基本概念和理论。 2.土木工程CAD硬件环境是本课程的核心内容之一,要求学生熟悉各类图形输入、输出设备(如:键盘、鼠标、扫描仪、显示器、显示卡、打印机、绘图仪等)的工作原理和各项主要技术指标。 3.计算机图形学是土木工程CAD技术的数学基础。要求学生掌握二维图形生成的原理和常用算法,掌握主要几种图形变换(二维、三维几何变换、投影变换和窗口裁剪)的工作原理和实现方法。 4.AutoCAD2000是目前比较流行的绘图软件工具,在土木工程中有广泛的应用,要求学生熟练掌握AutoCAD2000的基本命令,能够用该软件完成中等复杂程度的土木工程施工图。 二、课程的教学要求层次 本课程的教学内容要求由低到高分为“了解、熟悉、掌握”三个层次,上机实践内容由低到高分为“了解、学会、熟练”三个层次。 三、试题类型 本课程试卷采用四种题型:填空题、选择题、简答题、作图题。 四、考核形式 期末考试采用闭卷笔试形式,卷面满分为100分。 五、答题时限 考试时间为90分钟。 第二部分考核的内容和要求 第一章绪论 考核知识点 1.CAD的基本概念及其研究与应用领域 2.CAD的发展历史、当前现状及难点与热点问题 考核要求 了解CAD的发展历史、当前现状及难点与热点问题 第二章常用图形输入、输出设备 考核知识点

1.常用图形输入设备的种类、主要性能指标及使用方法。 2.常用图形输出设备的种类、主要性能指标及使用方法。 考核要求 1.了解键盘、鼠标、扫描仪、显示卡、显示器、打印机和绘图仪的种类及主要性能指标; 2.掌握键盘、鼠标、打印机和绘图仪的使用方法. 第三章二维图形的生成算法 考核知识点 1、逐点比较法、数值微分法、Bresenham法的基本原理。 2、逐点比较法、数值微分法生成直线和圆的基本方法和步骤。 3、填充的基本原理。 考核要求 1、了解线性变换及其逆变换 2、了解点、直线的生成 3、了解填充的基本原理 第四章图形变换 考核知识点 1、二维基本几何变换 2、齐次坐标与平移变换 3、二维基本变换矩阵的级联——组合变换 4、三维基本几何变换 5、投影变换(1)三视图投影(2)透视变换 6、图形裁剪 考核要求 了解平移变换、投影变换和图形裁剪 第五章AutoCAD概述 考核知识点 1、AutoCAD2000的主要功能 2、AutoCAD2000的用户界面 3、AutoCAD2000的基本命令 4、AutoCAD2000的系统需求 考核要求 了解AutoCAD2000的主要功能、掌握AutoCAD2000的用户界面、基本命令和系统需求 第六章AUTOCAD绘图 考核知识点 1、AutoCAD2000中的开始创建新图 2、图层与实体特性 考核要求 1、掌握绘图环境的设置 2、熟练掌握图层的设置(颜色、线型和线宽) 第七章AUTOCAD基本绘图技术 考核知识点 1、基本绘图命令 2、图形的编辑与修改 3、目标捕捉 4、图块与属性 5、图案及其填充 6、外部引用

信息可视化与其发展(计算机图形学)

《计算机图形学》(课程编号:0882438)2009 - 2010 学年第 3学期 大作业 学院: 学号: 姓名: 成绩: 2010 年 6 月25 日

信息可视化技术的发展与应用可视化是指在人通过视觉观察并在头脑中形成客观事物的影像的过程,这是一个心智处理过程。可视化提高了人对事物的观察能力及整体概念的形成等。可视化结果便于人的记忆和理解,同时其对于信息的处理和表达方式有其他方法无法取代的优势。可视化技术以人们惯于接受图形、图像并辅以信息处理技术将客观事物及其内在的联系表现出来。可视化不仅是客观现实的形象再现,也是客观规律、知识和信息的有机融合。它的应用范围很广,主要有: (1)科学计算可视化 科学计算可视化是指空间数据场的可视化,它是用计算机图形学和图像处理技术,将科学计算过程中产生的数据及计算结果转换为图形或图像在屏幕上显示出来并进行交互处理的理论、方法和技术。其应用有: a)科学计算可视化在电网调度系统中的应用 电网调度一方面需要对其进行持续有力的分析与处理。另一方面,传统的仿真研究形式也需要加以改进,以方便对数学模型的调整并加深研究者对仿结果的理解,从而揭示电网运行的内在规律。当电力系统中各种发电、变电、输配电及用电设备之间的相互联结关系情况已经确定时,电力系统运行状态的描述通常是通过反映例如电压、功率、电流等变量的数值来实现的。由于科学计算可视化技术在大量信息的抽象综合、系统总体状况表示方面的优点,因此在电网调度力系统实时监视方面能够开展很好的应用,这些应用包括利用等高线技术监视电压等、动画潮流技术监视线路流动功率等、饼图技术监视线路(变压器)负载率等、三维交互技术用来监视多个信息(例如电压和功率)

计算机图形学实验—中点算法画直线

计算机图形学实验报告 班级:软件1102 姓名:夏明轩 学号:201109020221

中点算法的线段光栅化 一、设计思想和算法流程 1.假定直线斜率0 P 2离直线更近更近->取P 2 。 M 在Q 的上方-> P 1离直线更近更近->取P 1 M 与Q 重合, P 1、P 2任取一点。 问题:如何判断M 与Q 点的关系? 由常识知:若y=kx+b; F(x,y)=y-kx-b;则有 ()()()?????<>=点在直线下方 0,点在直线上方0,点在直线上面0,y x F y x F y x F 假设直线方程为:ax +by +c=0 (y=(-a/b)x-c/b) 通过两点不能唯一确定a,b,c, 取 a=y 0-y 1, b=x 1-x 0, c=x 0y 1-x 1y 0 F(x,y)=ax +by +c=b(y-(-a/b)x-c/b); ()()()?????<>=点在直线下方0,点在直线上方0 ,点在直线上面0,y x F y x F y x F 则有 ∴欲判断M 点是在Q 点上方还是在Q 点下方,只需把M 代入F (x ,y ),并检查它的符号。构造判别式:d=F(M)=F(x p +1,y p +0.5)=a(x p +1)+b(y p +0.5)+c 当d<0,M 在直线(Q 点)下方,取右上方P 2; 当d>0,M 在直线(Q 点)上方,取右方P 1; 当d=0,选P 1或P 2均可,约定取P 1; 能否采用增量算法呢?若d ≥0 ---->M 在直线上方->取P1;此时再下一个象素的判别式为 d 1=F(x p +2, y p +0.5) =a(x p +2)+b(y p +0.5)+c = a(x p +1)+b(y p +0.5)+c +a =d+a ; 增量为a 若d<0 ------>M 在直线下方->取P2;此时再下一个象素的判别式为 d 2= F(x p +2, y p +1.5) =a(x p +2)+b(y p +1.5)+c = a(x p +1)+b(y p +0.5)+c +a +b =d+a+b ;

计算机图形学必考知识点

Phong Lighting 该模型计算效率高、与物理事实足够接近。Phong模型利用4个向量计算表面任一点的颜色值,考虑了光线和材质之间的三种相互作用:环境光反射、漫反射和镜面反射。Phong模型使用公式:I s=K s L s cosαΦα:高光系数。计算方面的优势:把r和v归一化为单位向量,利用点积计算镜面反射分量:I s=K s L s max((r,v)α,0),还可增加距离衰减因子。 在Gouraud着色这种明暗绘制方法中,对公用一个顶点的多边形的法向量取平均值,把归一化的平均值定义为该顶点的法向量,Gouraud着色对顶点的明暗值进行插值。Phong着色是在多边形内对法向量进行插值。Phong着色要求把光照模型应用到每个片元上,也被称为片元的着色。 颜色模型RGB XYZ HSV RGB:RGB颜色模式已经成为现代图形系统的标准,使用RGB加色模型的RGB三原色系统中,红绿蓝图像在概念上有各自的缓存,每个像素都分别有三个分量。任意色光F都可表示为F=r [ R ] + g [ G ] + b [ B ]。RGB颜色立方体中沿着一个坐标轴方向的距离代表了颜色中相应原色的分量,原点(黑)到体对角线顶点(白)为不同亮度的灰色 XYZ:在RGB 系统基础上,改用三个假想的原色X、Y、Z建立了一个新的色度系统, 将它匹配等能光谱的三刺激值,该系统称为视场XYZ色度系统,在XYZ空间中不能直观地评价颜色。 HSV是一种将RGB中的点在圆柱坐标系中的表示法,H色相S饱和度V明度,中心轴为灰色底黑顶白,绕轴角度为H,到该轴距离为S,沿轴高度为S。 RGB优点:笛卡尔坐标系,线性,基于硬件(易转换),基于三刺激值,缺点:难以指定命名颜色,不能覆盖所有颜色范围,不一致。 HSV优点:易于转换成RGB,直观指定颜色,’缺点:非线性,不能覆盖所有颜色范围,不一致 XYZ:覆盖所有颜色范围,基于人眼的三刺激值,线性,包含所有空间,缺点:不一致 交互式计算机程序员模型 (应用模型<->应用程序<->图形库)->(图形系统<->显示屏).应用程序和图形系统之间的接口可以通过图形库的一组函数来指定,这和接口的规范称为应用程序编程人员接口(API),软件驱动程序负责解释API的输出并把这些数据转换为能被特定硬件识别的形式。API提供的功能应该同程序员用来确定图像的概念模型相匹配。建立复杂的交互式模型,首先要从基本对象开始。良好的交互式程序需包含下述特性:平滑的显示效果。使用交互设备控制屏幕上图像的显示。能使用各种方法输入信息和显示信息。界面友好易于使用和学习。对用户的操作具有反馈功能。对用户的误操作具有容忍性。Opengl并不直接支持交互,窗口和输入函数并没有包含在API中。 简单光线跟踪、迭代光线跟踪 光线跟踪是一种真实感地显示物体的方法,该方法由Appel在1968年提出。光线跟踪方法沿着到达视点的光线的相反方向跟踪,经过屏幕上每一象素,找出与视线所交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有的光源,从而算出P0点上精确的光照强度。光线跟踪器最适合于绘制具有高反射属性表面的场景。优缺点:原理简单,便于实现,能生成各种逼真的视觉效果,但计算量开销大,终止条件:光线与光源相交光线超出视线范围,达到最大递归层次。一般有三种:1)相交表面为理想漫射面,跟踪结束。2)相交表面为理想镜面,光线沿镜面反射方向继续跟踪。3)相交表面为规则透射面,光线沿规则透射方向继续跟踪。 描述光线跟踪简单方法是递归,即通过一个递归函数跟踪一条光线,其反射光想和折射光线再调用此函数本身,递归函数用来跟踪一条光线,该光线由一个点和一个方向确定,函数返回与光线相交的第一个对象表面的明暗值。递归函数会调用函数计算指定的光线与最近对象表面的交点位置。 图形学算法加速技术BVH, GRID, BSP, OCTree 加速技术:判定光线与场景中景物表面的相对位置关系,避免光线与实际不相交的景物表面的求交运算。加速器技术分为以下两种:Bounding Volume Hierarchy 简写BVH,即包围盒层次技术,是一种基于“物体”的场景管理技术,广泛应用于碰撞检测、射线相交测试之类的场合。BVH的数据结构其实就是一棵二叉树(Binary Tree)。它有两种节点(Node)类型:Interior Node 和Leaf Node。前者也是非叶子节点,即如果一个Node不是Leaf Node,它必定是Interior Node。Leaf Node 是最终存放物体/们的地方,而Interior Node存放着代表该划分(Partition)的包围盒信息,下面还有两个子树有待遍历。使用BVH需要考虑两个阶段的工作:构建(Build)和遍历(Traversal)。另一种是景物空间分割技术,包括BSP tree,KD tree Octree Grid BSP:二叉空间区分树 OCTree:划分二维平面空间无限四等分 Z-buffer算法 算法描述:1、帧缓冲器中的颜色设置为背景颜色2、z缓冲器中的z值设置成最小值(离视点最远)3、以任意顺序扫描各多边形a) 对于多边形中的每一个采样点,计算其深度值z(x,y) b) 比较z(x, y)与z缓冲器中已有的值zbuffer(x,y)如果z(x, y) >zbuffer(x, y),那么计算该像素(x, y)的光亮值属性并写入帧缓冲器更新z缓冲器zbuffer(x, y)=z(x, y) Z-buffer算法是使用广泛的隐藏面消除算法思想为保留每条投影线从COP到已绘制最近点距离,在投影后绘制多边形时更新这个信息。存储必要的深度信息放在Z缓存中,深度大于Z缓存中已有的深度值,对应投影线上已绘制的多边形距离观察者更近,故忽略该当前多边形颜色,深度小于Z缓存中的已有深度值,用这个多边形的颜色替换缓存中的颜色,并更新Z缓存的深度值。 void zBuffer() {int x, y; for (y = 0; y < YMAX; y++) for (x = 0; x < XMAX; x++) { WritePixel (x, y, BACKGROUND_VALUE); WriteZ (x, y, 1);} for each polygon { for each pixel in polygon’s projection { //plane equation doubl pz = Z-value at pixel (x, y); if (pz < ReadZ (x, y)) { // New point is closer to front of view WritePixel (x, y, color at pixel (x, y)) WriteZ (x, y, pz);}}}} 优点:算法复杂度只会随着场景的复杂度线性增加、无须排序、适合于并行实现 缺点:z缓冲器需要占用大量存储单元、深度采样与量化带来走样现象、难以处理透明物体 着色器编程方法vert. frag 着色器初始化:1、将着色器读入内存2、创建一个程序对象3、创建着色器对象4、把着色器对象绑定到程序对象5、编译着色器6、将所有的程序连接起来7、选择当前的程序对象8、把应用程序和着色器之间的uniform变量及attribute变量关联起来。 Vertex Shader:实现了一种通用的可编程方法操作顶点,输入主要有:1、属性、2、使用的常量数据3、被Uniforms使用的特殊类型4、顶点着色器编程源码。输入叫做varying变量。被使用在传统的基于顶点的操作,例如位移矩阵、计算光照方程、产生贴图坐标等。Fragment shader:计算每个像素的颜色和其他属性,实现了一种作用于片段的通用可编程方法,对光栅化阶段产生的每个片段进行操作。输入:Varying 变量、Uniforms-用于片元着色器的常量,Samples-用于呈现纹理、编程代码。输出:内建变量。 观察变换 建模变换是把对象从对象标架变换到世界标架 观察变换把世界坐标变换成照相机坐标。VC是与物理设备无关的,用于设置观察窗口观察和描述用户感兴趣的区域内部分对象,观察坐标系采用左手直角坐标系,可在用户坐标系中的任何位置、任何方向定义。其中有一坐标轴与观察方向重合同向并与观察平面垂直。观察变换是指将对象描述从世界坐标系变换到观察坐标系的过程。(1):平移观察坐标系的坐标原点,与世界坐标系的原点重合,(2):将x e,y e轴分别旋转(-θ)角与x w、y w轴重合。 规范化设备坐标系 规范化设备坐标系是与具体的物理设备无关的一种坐标系,用于定义视区,描述来自世界坐标系窗口内对象的图形。 光线与隐式表面求交 将一个对象表面定义为f(x,y,z)=f(p)=0,来自P0,方向为d的光线用参数的形式表示为P(t)=P0+td. 交点位置处参数t的值满足:f(P0+td)=0,若f是一个代数曲面,则f是形式为X i Y j Z k的多项式之和,求交就转化为寻求多项式所有根的问题,满足的情况一:二次曲面,情况二:品面求交,将光线方程带入平面方程:p*n+c=0可得到一个只需做一次除法的标量方程p=p0+td。可通过计算得到交点的参数t的值:t=(p0*n+c)/(n*d). 几何变换T R S矩阵表示 三维平移T 三维缩放S旋转绕z轴Rz( ) 100dx 010dy 001dz 0001 Sx000 0Sy00 00Sz0 0001 cos-sin00 sin cos00 0010 0001 θθ θθ 旋转绕x轴Rx(θ) 旋转绕y轴Ry(θ) 1000 0cos-sin0 0sin cos0 0001 θθ θθ cos0sin0 0100 -sin0cos0 0001 θθ θθ 曲线曲面 Bezier曲线性质:Bezier曲线的起点和终点分别是特征多边形的第一个顶点和最后一个顶点。曲线在起点和终点处的切线分别是特征多边形的第一条边和最后一条边,且切矢的模长分别为相应边长的n倍;(2)凸包性;(3)几何不变性(4)变差缩减性。端点插值。 均匀B样条曲线的性质包括:凸包性、局部性、B样条混合函数的权性、连续性、B样条多项式的次数不取决于控制函数。 G连续C连续 C0连续满足:C1连续满足: (1)(0) p(1)=(1)(0)(0) (1)(0) px qx py q qy pz qz == ???? ???? ???? ???? (1)(0) p'(1)=(1)'(0)(0) (1)(0) p x q x p y q q y p z q z == ???? ???? ???? ???? C0(G0)连续:曲线的三个分量在连接点必须对应相等 C1连续:参数方程和一阶导数都对应相等 G1连续:两曲线的切线向量成比例 三维空间中,曲线上某点的导数即是该点的切线,只要求两个曲线段连接点的导数成比例,不需要导 数相等,即p’(1)=aq’(0) 称为G1几何连续性。将该思想推广到高阶导数,就可得到C n和G n连续性。

计算机图形学考试大纲

计算机科学与技术学科综合水平全国统一考试大纲及指南 计算机图形学 一、考试大纲 要求掌握设计和使用计算机图形学系统所必须的基本原理,其主要内容包括: 1.基本图形生成算法 2.二维图形显示 3.曲线和曲面的表示 4.三维物体的几何表示和几何变换 5.真实感图形的实现原理和算法 二、复习指南 (-)概述 1.计算机图形学和图形系统基本知识 计算机图形学研究对象及应用领域;图形系统的硬件和软件;图形标准接口。 2.基本图形的属性及生成算法 直线,曲线,填充区域,文字等。 (二)二维图形变换和显示 1.二维几何变换 平移、旋转、缩放及其组合,坐标系变换。 2.二维图形显示 点、线、多边形、曲线及文字的裁剪。 (三)曲线、曲面和三维图形 1.曲线和曲面的参数表示 Bezier曲线和曲面,双三次曲面的表示,B样条,插值,曲面拟合。 2.三维物体的几何表示方法 物体的定义及性质,特征参数法,边界表示法,曲面离散近似表示,实体构造表示法,八叉树表示法。 3.三维形体的输出过程 平面几何投影变换,观察空间,空间转换,三维裁剪。 (四)光学模型及其算法实现 l.简单光反射模型 基本光学原理,简单光反射模型(Phong模型)的导出和实现。 2.增量式光反射模型 双线性光强插值法(Crourand Shading),双线性法向插值法(Phong Shading),加速算法。 3.局部光反射模型 局部光反射模型及其实现。 4.光源模型 光源模型及其光强分布。 5.简单光透射模型 透明效果的模拟方法,Witted光透射模型,Hall光透射模型。 6.光线跟踪显示技术

基本光线跟踪算法,光线与物体求交,光线跟踪中的简单阴影。 (五)消隐显示和阴影生成技术 1.消隐显示技术 深度缓存算法(Z-Buffer),扫描线算法,多边形区域排序算法,列表优先算法。 2.阴影生成技术 阴影扫描线算法,阴影多边形算法,阴影空间算法,阴影深度缓存算法,反走样软影生成算法。 三、思考题 1.计算机图形显示器和绘图设备表示颜色的方法各是什么颜色系统?它们之间的关系如何? 2.简述侦缓存与显示器分辨率的关系。分辨率分别为640 * 480,1280 * 1024,和2560 * 2048的显示器各需要多少字节位平面数为24的帧缓存? 3.画直线的算法有哪几种?圆圆弧的算法有哪几种?写一个画带线宽的虚线的程序。 4.写一个画饼分图的程序,用不同的颜色填充各个区域。 5.写一个显示一串字符的程序。 6.分别写出平移、旋转、缩放及其组合的变换矩阵。 7.如何用几何变换实现坐标系的变换? 8.写出几种线裁剪算法;写出几种多边形裁剪算法。 9.写出Bezier曲线和面片的几种表达形式。 10.写出B样条的矩阵形式和调和函数。为什么使用非均匀有理B样条? 11.简述边界表示法(BREP)实体构造表示法(CSG) 12.写出透视变换矩阵和各种投影(三视图、正轴测和斜投影)变换矩阵。 13.观察空间有哪些参数?其作用是什么?写出从物体空间坐标系到观察空间坐标系转换矩阵。 14.分别写出对于透视投影和平行投影的从裁剪空间到规范化投影空间的转换矩阵。 15.写出从规范化投影空间到图象空间的转换矩阵。 16.写出简单光反射模型近似公式,并说明其适用范围及能产生的光照效果。 17.写出线光源的光强公式及其积分算法。 18.试描述Witted光透射反射模型和Hall光透射模型。 19.写出光线跟踪算法。 20.写出光线与几种常见物体面的求交界法。 21.简述消隐算法的分类。 22.简述深度缓存算法及其特点。 23.简述点与多边形之间的包合性检测算法。 24.描述扫描线算法。 25.简述阴影生成算法的分类及各种算法。 四、考试样卷 请从以下每小题的所给A~D答案中选出一个正确答案: 1.计算机绘图设备一般使用什么颜色模型? A)RGB;B)CMY:C)HSV;D)HLS 2.计算机图形显示器一般使用什么颜色模型? A)RGB;B)CMY;C)HSV;D)HLS 3.分辨率为1024*1024的显示器各需要多少字节位平面数为24的侦级存? A)512KB;B)1MB;C)2MB;D)3MB

计算机图形学用VC++画直线

实验一基本图形生成算法 实验目的: 掌握中点Bresenham绘制直线的原理 设计中点Bresenham算法 编程实现中点Bresenham算法 实验描述: 使用中点Bresenham算法绘制斜率为0≤k≤1的直线。 算法设计: 直线中点Bresenham算法 1. 输入直线的起点坐标P0(x0,y0)和终点坐标P1(x1,y1)。 2. 定义直线当前点坐标x,y、定义中点偏差判别式d、定义直线斜率k、定义像素点颜色 rgb。 3. x=x0,y=y0,计算d=0.5-k,k=(y1-y0)/(x1-x0),rgb=RGB(0,0,255)。 4. 绘制点(x,y),判断d的符号。若d<0,则(x,y)更新为(x+1,y+1),d 更新为 d+1-k;否则(x,y)更新为(x+1,y),d更新为d-k。 5. 如果当前点x 小于x1,重复步骤4,否则结束。 源程序: 1)// TestView.h #include "InputDlg.h"//对话框头文件 class CTestView : public CView { ….. } 2)//TestView.cpp #define ROUND(a) int(a+0.5) //四舍五入 ….. void CTestView::OnMbline()//菜单响应函数 { InputDlg dlg; if(dlg.DoModal()==IDOK) { AfxGetMainWnd()->SetWindowText(":直线中点Bresenham算法"); RedrawWindow(); Mbline(dlg.m_x0, dlg.m_y0, dlg.m_x1, dlg.m_y1); } } void CTestView::Mbline(double x0, double y0,double x1,double y1) //直线中点Bresenham函数{ CClientDC dc(this); COLORREF rgb=RGB(0,0,255); //定义直线颜色为蓝色 double x,y,d,k; x=x0;y=y0;k=(y1-y0)/(x1-x0);d=0.5-k;

计算机图形学 直线的生成算法的实现

实验二 直线的生成算法的实现 班级 08信计2班 学号 59 姓名 分数 一、实验目的和要求 1.理解直线生成的基本原理。 2.掌握几种常用的直线生成算法。 3.利用Visual C++实现直线生成的DDA 算法。 二、实验内容 1.了解直线的生成原理,尤其是Bresenham 画线法原理。 2.掌握几种基本的直线生成算法:DDA 画线法、Bresenham 画线法、中点画线法。 3.利用Visual C++实现直线生成的DDA 算法,在屏幕上任意生成一条直线。 三、实验步骤 1.直线的生成原理: (1)DDA 画线法也称数值微分法,是一种增量算法。是一种基于直线的微分方程来生成直线的方法。 (2)中点画线法原理 以下均假定所画直线的斜率[0,1]k ∈,如果在x 方向上的增量为1,则y 方向上的增量只能在01 之间。中点画线法的基本原理是:假设在x 坐标为p x 的各像素点中,与直线最近者已经确定为(,)p p P x y ,用小实心圆表示。那么,下一个与直线最近的像素只能是正右方的1(1,)p p P x y +,或右上方的2(1,1)p p P x y ++,用小空心圆表示。以M 为1P 和2P 的中点,则M 的坐标为(1,0.5)p p x y ++。又假设Q 是理想直线与垂直线1p x x =+的交点。显然,若M 在Q 的下方,则2P 离直线近,应取2P 为下一像素点;若M 在Q 的上方,则1P 离直线近,应取1P 为下一像素点。 (3)B resenham 画线法原理 直线的中点Bresenham 算法的原理:每次在主位移方向上走一步,另一个方向上走不走步取决于中点偏差判别式的值。 给定理想直线的起点坐标为P0(x0,y0),终点坐标为P1(x1,y1),则直线的隐函数方程为: 0b kx y y)F(x,=--= (3-1) 构造中点偏差判别式d 。 b x k y y x F y x F d i i i i M M -+-+=++==)1(5.0)5.0,1(),(

相关主题
文本预览
相关文档 最新文档