CG07-线画图形生成.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CG07-线画图形生成,二个园五条线画图形,在图形上画一条直线,图形生成器,几何图形生成器,图形字符生成器,图形二维码生成器,字符图形生成,cad图形重新生成,cad坐标文件生成图形

输出图元生成 通常,图形软件包提供使用称为图形输出图元的基本几何结构来描述场景和利用这些输出图元(或输出原语)组合成更复杂结构的功能,并通过设置影响图元显示方法的参数(属性)来控制图元的输出形态。 图形的基本构造块称为输出图元(output primitive)。 包括:字符串和几何成分,如点、直线、曲线、填充区域(多边形、圆)及由彩色阵列定义的形状。 生成输出图元的子程序为构造图形提供了基本工具。 输出图元有两大类: 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程。 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示。 输出图元的生成属于图形输出设备级算法 输出图元基本操作 画点是将由应用程序提供的单个坐标位置转换成所使用输出设备的合适操作。 随机扫描系统:在显示表中储存画点指令,并在每个刷新循环中,将这些指令中的坐标值转换成偏转电压,以将电子束定位于屏幕指定位置。 黑白/彩色光栅系统:通过将帧缓冲器中对应于指定屏幕位置的位设置颜色码,以表示屏幕像素位置上将要显示的颜色。电子束进行扫描时,根据帧缓冲器中位的值发射电子脉冲,画出一点。 画线是通过计算沿线路径上两指定端点位置间的中间位置来完成的,输出设备则直接按指令在端点间的这些位置填充。 向量式笔绘图机或随机、光栅扫描显示器这类模拟设备都通过按x和y方向所需的量线性地改变水平和垂直偏转电压来实现。 线画图元生成思想 线画图元生成指的是: 从图元的数学/参数表示形式(由用户按需要指定)转换成适于光栅系统显示所需要的点阵表示形式, 即:实现扫描转换。 图元像素编址 数字式设备通过绘制两端点间的离散点来显示直线段 要在屏幕上显示世界坐标系中指定对象的几何形状,需要调整数学输入点到有限像素区域的映射。 线路径上离散坐标位置是从线段方程中计算出来的。其采用精确的世界坐标描述,其每一位置是数学上的一个无限小的点; 屏幕像素坐标参考有限的屏幕区域,屏幕位置使用整数值,所以,绘制的位置仅是在两指定端点间的实际线段位置的近似。 图元像素编址(数学输入点到有限像素区域的映射): 按对象边界与像素区域的覆盖量来调整显示物体的尺寸,即:对象与像素中心对准。 将对象映射到像素间的屏幕位置,以使物体边界与像素边界对准。 像素网格坐标 这个编址策略是依照像素中心给显示位置定址 扫描线从屏幕底部从零开始顺序编号; 像素列则沿每条扫描线从左至右从零开始编号。 其每个点的坐标位置在像素点的中心处, 占据具有屏幕坐标位置(x,y)的一个像素的区域标识为中点位置在(x,y)处的单位面积。 屏幕网格坐标 线画图元生成原理 直线的笛卡尔斜率截距方程为:y=mx+b,m表示线的斜率,b是y轴截距。 给定线段的两个端点(x1,y1)和(x2,y2),可计算斜率m和截距b: m=(y2-y1)/(x2-x1);b=y1-mx1 。 显示直线的算法可以上述直线方程和m、b算式为基础。 对任何沿直线给定的x增量△x,可从方程中计算出对应的y增量△y:△y = m △x; 同样,可得出对应于△y的x增量△x;△x = (△y / m)。 上述方程形成了模拟设备决定偏转电压的基础。 具有斜率绝对值|m|<1的线段,可设置一个小的水平偏转电压△x,垂直偏转电压则可用计算出的△y来设定; 斜率值|m|>1的线,则设置一个小的垂直偏转电压△y,水平偏转电压则由计算出来的△x来设定; 斜率|m|=1的线,△x=△y,水平和垂直偏转电压相等。 这样,在指定端点间就可生成一条斜率为m的光滑线段。 线生成DDA算法 DDA(digital differential analyzer)方法:直接利用计算△x或△y的线段扫描转换算法 在一个坐标轴上以单位间隔对线段取样,而决定另一个坐标轴上最靠近线段路径的对应整数值。 先考虑具有正斜率、从左端点到右端点处理的线段。 若斜率m≤1,则在单位x间隔(△x=1)取样,并计算每个顺序的y值: yk+1=yk+m (1)。 下标k取整数值从第一个点1开始递增,直至最后端点。 若m1,则将x和y的规则交换。 即:在单位y间隔(△y=1)取样,并计算每个连续的x值: xk+1=xk+(1/m) (2) 假如起始点在右侧,则取△x =-1,且:yk+1=yk-m (3) 或(当斜率大于1时),△y =-1,且:xk+1=xk-(1/m) (4) 由于m可以是0与1之间的任意实数,所以,计算出的y值必须取整。 DDA算法原理 计算具有负斜率线段的像素位置也可用上述方程进行。 假如

文档评论(0)

xiaolan118 + 关注
实名认证
内容提供者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档