文档介绍:线画图元生成
9/9/2017
深圳大学计算机系
李坚强博士
输出图元生成
通常,图形软件包提供使用称为图形输出图元的基本几何结构来描述场景和利用这些输出图元(或输出原语)组合成更复杂结构的功能,并通过设置影响图元显示方法的参数(属性)来控制图元的输出形态。
图形的基本构造块称为输出图元(output primitive)。
包括:字符串和几何成分,如点、直线、曲线、填充区域(多边形、圆)及由彩色阵列定义的形状。
生成输出图元的子程序为构造图形提供了基本工具。
输出图元有两大类:
线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程。
填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示。
输出图元的生成属于图形输出设备级算法
●输出图元生成
◘基本操作
◘生成思想
◘像素编址
◘像素坐标
◘屏幕坐标
●线画图元生成
● DDA算法
● Bresenham算法
●平行画线算法
●帧缓冲器地址
●中点圆生成
●中点椭圆生成
●线画图元属性
画点是将由应用程序提供的单个坐标位置转换成所使用输出设备的合适操作。
随机扫描系统:在显示表中储存画点指令,并在每个刷新循环中,将这些指令中的坐标值转换成偏转电压,以将电子束定位于屏幕指定位置。
黑白/彩色光栅系统:通过将帧缓冲器中对应于指定屏幕位置的位设置颜色码,以表示屏幕像素位置上将要显示的颜色。电子束进行扫描时,根据帧缓冲器中位的值发射电子脉冲,画出一点。
输出图元基本操作
●输出图元生成
◘基本操作
◘生成思想
◘像素编址
◘像素坐标
◘屏幕坐标
●线画图元生成
● DDA算法
● Bresenham算法
●平行画线算法
●帧缓冲器地址
●中点圆生成
●中点椭圆生成
●线画图元属性
直线的生成
数学上,理想的直线是由无数个点构成的集合,没有宽度。
计算机绘制直线是在显示器所给定的有限个像素组成的矩阵中,确定最佳逼近该直线的一组像素,并且按扫描线顺序,对这些像素进行写操作,实现显示器绘制直线,即通常所说的直线的扫描转换,或称直线光栅化。
线画图元生成思想
线画图元生成指的是:
从图元的数学/参数表示形式(由用户按需要指定)转换成适于光栅系统显示所需要的点阵表示形式,
即:实现扫描转换。
线画图元生成的基本思想是:
根据直线的数学/参数方程计算出落在直线段上或充分靠近它的一串像素,并以此像素集近似替代原来直线段,在屏幕上显示。
也就是说:线段通过像素绘制,会产生台阶状。
水平和垂直方向的台阶大小受像素的间隔(或分辨率)大小限制。
具体实现时,在离散位置上对线段取样,并在每个取样位置上决定距线段最近的像素。
0
0
1
2
4
5
3
1
3
2
4
5
y
x
线的光栅表示
线的数学表示
象素
扫描线
6
●输出图元生成
◘基本原理
◘生成思想
◘像素编址
◘像素坐标
◘屏幕坐标
●线画图元生成
● DDA算法
● Bresenham算法
●平行画线算法
●帧缓冲器地址
●中点圆生成
●中点椭圆生成
●线画图元属性
图元像素编址
数字式设备通过绘制两端点间的离散点来显示直线段
要在屏幕上显示世界坐标系中指定对象的几何形状,需要调整数学输入点到有限像素区域的映射。
线路径上离散坐标位置是从线段方程中计算出来的。其采用精确的世界坐标描述,其每一位置是数学上的一个无限小的点;
屏幕像素坐标参考有限的屏幕区域,屏幕位置使用整数值,所以,绘制的位置仅是在两指定端点间的实际线段位置的近似。
图元像素编址(数学输入点到有限像素区域的映射):
像素中心对准:按对象边界与像素区域的覆盖量来调整显示物体的尺寸,即:对象与像素中心对准。
像素边界对准:将对象映射到像素间的屏幕位置,以使物体边界与像素边界对准。
●输出图元生成
◘基本操作
◘生成思想
◘像素编址
◘像素坐标
◘屏幕坐标
●线画图元生成
● DDA算法
● Bresenham算法
●平行画线算法
●帧缓冲器地址
●中点圆生成
●中点椭圆生成
●线画图元属性
像素网格坐标
这个编址策略是依照像素中心给显示位置定址
扫描线从屏幕底部从零开始顺序编号;
像素列则沿每条扫描线从左至右从零开始编号。
其每个点的坐标位置在像素点的中心处,
占据具有屏幕坐标位置(x,y)的一个像素的区域标识为中点位置在(x,y)处的单位面积。
●输出图元生成
◘基本原理
◘生成思想
◘像素编址
◘像素坐标
◘屏幕坐标
●线画图元生成
● DDA算法
● Bresenham算法
●平行画线算法
●帧缓冲器地址
●中点圆生成
●中点椭圆生成
●线画图元属性
屏幕网格坐标
参考由相距为单