03 输出图元1.pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03 输出图元1

第3章 输出图元 云南财经大学信息学院 主要内容 输出图元概念 点绘制算法 画线算法 数值微分法(DDA) Bresenham画线算法 中点画线法 圆生成算法 中点画圆法 Bresenham画圆算法 填充图元 字符生成 输出图元概念 图形输出原语,简称图元,即图形软件包中用来描述各种图形元素(最基本的~)的函数 几何图元:描述对象几何要素的输出图元 输出图元种类 一级元素:点、直线线段 点和线是计算机图形表示的最简单的基本图元 二级元素:由点、线构成的圆、圆锥曲线、二次曲面、样条线段、曲面、多边形填色区域、字符串等 坐标系统 为描述图形,必须首先确定一个称为世界坐标系的合适的二维或三维笛卡尔坐标系。接着通过给出世界坐标系中的位置等几何描述来定义图形中的对象 例如,通过两个端点定义一条直线 坐标范围:对象坐标的x、y、z最小/最大值等信息,也称为对象的包围盒(Bounding Box),对二维图形则被称为对象的包围矩形 回 顾 笛卡尔坐标 建模坐标 世界坐标 规范化设备坐标 设备坐标或屏幕坐标 坐标系统 视频监视器上的位置与帧缓存中的像素位置相对应的整数屏幕坐标进行描述 屏幕刷新等硬件处理一般从屏幕的左上角开始对像素进行编址。然而,使用软件命令可以按照任何方式设定屏幕位置的参考系统。 绝对坐标和相对坐标描述 此前讨论的坐标均为绝对坐标,即指定值是所在坐标系统中的实际位置 有些图形软件包还允许使用相对坐标来描述位置,即使用从距离最后一次引用的位置(称为当前位置)的位移量来指定坐标位置 例如位置(3,8)是当前位置,则相对坐标描述(2,-1)与绝对位置(5,7)相对应 主要内容 输出图元概念 点绘制算法 画线算法 数值微分法(DDA) Bresenham画线算法 中点画线法 圆生成算法 中点画圆法 Bresenham画圆算法 填充图元 字符生成 点绘制算法 思想:根据坐标(x, y),对帧缓冲区中相应的存储单元内容进行操作以画点。 主要涉及像素寻址 相关因素 显示分辨率 色深 屏幕坐标位置 像素信息存放方式 偏移量计算(offset) 图形信息存储方式 压缩像素法(线性链接法) 颜色位面法 图形信息存储---压缩像素法 方法:像素点的全部信息被编码成一个数据字节,按照行优先顺序存储到帧缓冲区中。 例子:8×8, 16 colors, 压缩像素 图形信息存储---颜色位面法 方法:帧缓冲区分成N个存储区域(每个存储区域称为一个位面, N个位面共用地址),象素信息在每个位面中占一位,通过N个位面的同一位组成象素数据字节。 例子:8×8, 16 colors, 颜色位面 偏移量计算---示例 例1:320×200,16色,压缩象素法,屏幕坐标(x, y),试求地址偏移量。若采用颜色位面法,地址偏移量? 解:offset = [(320*y + x)*1/2]向下取整 压缩象素法 offset = [(320*y +x)*1/8]向下取整 颜色位面法 例2:已知:分辨率640×200,单色,显示缓冲区起始地址A0000000H,屏幕第一行绘制一条水平线,How to operate? 解:一行640个象素点,色深为1bit, 一行占用存储空间640x1/8Bytes = 80Bytes, 因此,对A0000000~A000004F填充0xFF即可绘制出直线。 例2的C语言程序实现片段 int i; char far *ptr; ptr= (char far *)0xa0000000l; //指向起始地址 for (i=0;i80;i++) { *ptr=0xff; //赋值 ptr++; //指向下一地址 } 画点函数 屏幕坐标(P.67, Fig.3-2) setpixel(x,y) getpixel(x,y,color) gluOrtho2D(xmin,xmax,ymin,ymax)指定的显示窗口如右图所示 OpenGL画点函数 例:在斜率为2的直线上绘出3个等距离的点 glBegin(GL_POINTS); glVertex2i(50, 100); glVertex2i(75, 150); glVertex2i(100, 200); glEnd(); 主要内容 输出图元概念 点绘制算法 画线算法 数值微分法(DDA) Bresenham画线算法 中点画线法 圆生成算法 中点画圆法 Bresenham画圆算法 填充图元 字符生成 画线算法 问题 直线绘制算法 数值微分法(DDA) Bresenham画线算法 中点画线法 OpenGL画线函数 直线绘制问题 当我们对直线进行光栅化时,只能在显示器所给定的有限个象素组成的矩阵

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档