下载此文档

第3章基本图形算法.ppt


文档分类:IT计算机 | 页数:约71页 举报非法文档有奖
1/71
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/71 下载此文档
文档列表 文档介绍
第3章基本图形生成算法
如何在指定的输出设备上根据坐标描述构造基本二维几何图形(点、直线、圆、椭圆、多边形域、字符串及其相关属性等)。
现在的计算机能够生成非常复杂的图形,但图形无论多么复杂,它都是由基本图形组合而成的。因此,学****基本图形的生成算法是掌握计算机图形学的基础。
本章主要讨论一些基本图形的生成原理,如直线、圆、椭圆的生成问题,二维封闭图形(多边形、圆、椭圆)的处理。
2
Visual C++的CDC图形程序库已提供了画线、画圆和椭圆、填充等基本图形的绘制函数,它们实质上是按计算机图形标准并以C++的语法约定提供给用户使用的标准图形生成算法。因此,从实用的角度出发,用户只需完全按照C++的语法约定使用这些图形程序库,就没有必要学****基本图形的生成原理及算法。但是,基于下面的二个理由,我们认为学****本章介绍的基本图形生成原理及算法是非常有必要的。
第二,Visual C++虽然提供了许多绘图函数,但总有满足不了用户特殊绘图要求的时候。如果仅仅学会使用Visual C++的绘图函数,不掌握基本图形生成原理及算法,那么你就永远无法超越Visual C++的限制。
第一,基本图形生成原理及算法是计算机图形学的基本原理,如果不学****这些基本原理,那么以后还要涉及的其他计算机图形学原理就无从谈起;
众所周知,目前我们使用的主要图形输出设备显示器和打印机本质上是一种画点设备,是由一定数量的网格状细小光点,使其某些像素亮,某些像素不亮来显示图形或文字的。所谓的基本图形生成原理是指在点阵输出设备的情况下,如何对一条斜的直线或弯曲的曲线尽可能快地输出其最接近理想的直线或曲线。
本章我们主要以光栅图形显示器为例讨论基本图形的生成原理及算法。编程语言(以C++语言为例)提供了一个最底层的像素操作函数: setpixel (x, y, color);
图形的生成:是在指定的输出设备上,根据坐标描述构造二维几何图形。
图形的扫描转换或光栅化:在光栅显示器等数字设备上确定一个象素集合及其颜色,用于显示一个图形的过程,称为图形的扫描转换或光栅化。
图形的扫描转换(光栅化)步骤如下:
1、确定有关像素
2、用图形的颜色或其它属性,对像素进行写操作。
对一维图形,不考虑线宽,则用一个像素宽的直线来显示图形。二维图形的光栅化,即区域的填充:确定像素集,填色或图案。
任何图形的光栅化,必须显示在一个窗口内,否则不予显示。即确定一个图形的哪些部分在窗口内,哪些在窗口外,即裁剪。
直线的扫描转换算法
直线的扫描转换: 确定最佳逼近于该直线段的一组象素,并且按扫描线顺序,对这些象素进行写操作。
三个常用算法:
数值微分法(DDA)
中点画线法
Bresenham算法。
直线的绘制要求:

,即无定向性和断裂情况
、色泽要均匀

、亮度、线型等
数值微分法(DDA)
假定直线的起点、终点分别为:(x0,y0), (x1,y1),且都为整数。
(X i+1 ,Yi + k)
(X i , Int(Yi +))
(X i , Yi)
栅格交点表示象素点位置



第3章基本图形算法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数71
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhufutaobao
  • 文件大小1.06 MB
  • 时间2018-08-11