4.设音坐标系刻度尺寸的调整 计算机显示图形时,通常要求显示设备坐标系的水平刻度尺寸与垂 直刻度尺寸是等距的,这样画出的图形看起来才不会出现畸变效应。对 于不能满足这一要求的设备坐标系,应调整其水平与垂直刻度尺寸。 例如:显示器输出 在 Matlab中,有轴的刻度属性设置 在C语言中,有 getaspectratio( &xasp, &yasp) / read the hardware aspect * AspectRatio-(double)xasp /(double)yasp; / Get correction factor 「<p
4.设备坐标系刻度尺寸的调整 计算机显示图形时,通常要求显示设备坐标系的水平刻度尺寸与垂 直刻度尺寸是等距的,这样画出的图形看起来才不会出现畸变效应。对 于不能满足这一要求的设备坐标系,应调整其水平与垂直刻度尺寸。 例如:显示器输出 在Matlab中,有轴的刻度属性设置 在C语言中,有 getaspectratio( &xasp, &yasp ); /* read the hardware aspect */ AspectRatio = (double)xasp / (double)yasp; /* Get correction factor */
5.坐标系变换中的误差及其消除 在不同坐标系中转换图形数据,如果处理不当,就会产生积累误差和非线性偏差, 这在用户坐标系到设备坐标系的数据转换中表现得尤为突出。 (1)积累误差情况 对于增量式(向量)图形输出显示设备(如随机扫描图形显示器、绘图仪等),若 用当前用户坐标值和下一点的用户坐标值之差(即用户坐标的相对增量)作为本次设 备运动的增量来绘制直线,从数学上看似乎是正确的,但在实际绘图中,由于它忽 略了当前用户坐标值(实数)和设备坐标值(整数)之间的绝对误差,有时就会产生比 较大的误差。当连续输出的点越多时,这种误差就会越大,这种由于积累而造成的 误差称为积累误差。 例如,设有点列[Pi](i=1,2,100),其x,y值分别为 x:10.2,10.4, 30.0 y:10.1,10.2, 20.0 按用户坐标的相对增量输出,其每一步的x,y相对坐标增量为0.2与0.1,四舍 五入为0,故光点或绘图笔只能停在第一点的位置上,一步也不走。 为了消除积累误差,可采用当前的用户坐标与当前的设备坐标绝对值的增量来 代替用户坐标的相对增量,作为本次设备的运动增量。这样处理之后,可使得点列 几处的计算误差不影响Pi+1,Pi+2,的正确输出,从而消除了积累误差。 「<p
5.坐标系变换中的误差及其消除 在不同坐标系中转换图形数据,如果处理不当,就会产生积累误差和非线性偏差, 这在用户坐标系到设备坐标系的数据转换中表现得尤为突出。 (1)积累误差情况 对于增量式(向量)图形输出显示设备(如随机扫描图形显示器、绘图仪等),若 用当前用户坐标值和下一点的用户坐标值之差(即用户坐标的相对增量)作为本次设 备运动的增量来绘制直线,从数学上看似乎是正确的,但在实际绘图中,由于它忽 略了当前用户坐标值(实数)和设备坐标值(整数)之间的绝对误差,有时就会产生比 较大的误差。当连续输出的点越多时,这种误差就会越大,这种由于积累而造成的 误差称为积累误差。 例如,设有点列[Pi] (i=1,2,...100),其x,y值分别为 x:10.2,10.4,...,30.0 y:10.1,10.2,...,20.0 按用户坐标的相对增量输出,其每一步的x,y相对坐标增量为0.2与0.1,四舍 五入为0,故光点或绘图笔只能停在第一点的位置上,一步也不走。 为了消除积累误差,可采用当前的用户坐标与当前的设备坐标绝对值的增量来 代替用户坐标的相对增量,作为本次设备的运动增量。这样处理之后,可使得点列 几处的计算误差不影响Pi+l,Pi+2,…的正确输出,从而消除了积累误差
5.坐标系变换中的误差及其消除 (2)非线性偏差情况 以圆的角度微分法画圆算法为例,在该算法中,当用 Bresenham直 线算法来逼近圆时,无论如何调整 Bresenham直线算法,都不能达到用 DDA直线算法逼近该圆所能达到的显示效果(与 Bresenham画圆效果相比 较)。这是因为DDA直线算法为实数算法,它仅在最后输出时,才对坐标 数据进行四舍五人处理,因而可最大限度地消除每一显示点与理想圆之 间的非线性偏差。而 Bresenham直线算法为整数算法,它先对直线端点 进行四舍五人处理,故它在推算每一显示点之前,已经人为地引入了计 算偏差,因而它的显示效果不如DDA直线算法 这一例子说明:整数算法较适合描绘整数图形,而实数算法既能描 绘整数图形,也能描绘实数图形。一般说来,实数算法比整数算法的精 度高(其精度仅受变量精度的影响),且适用性更广,但它的实现较为复 杂 「<p
5.坐标系变换中的误差及其消除 (2)非线性偏差情况 以圆的角度微分法画圆算法为例,在该算法中,当用Bresenham直 线算法来逼近圆时,无论如何调整Bresenham直线算法,都不能达到用 DDA直线算法逼近该圆所能达到的显示效果(与Bresenham画圆效果相比 较)。这是因为DDA直线算法为实数算法,它仅在最后输出时,才对坐标 数据进行四舍五人处理,因而可最大限度地消除每一显示点与理想圆之 间的非线性偏差。而Bresenham直线算法为整数算法,它先对直线端点 进行四舍五人处理,故它在推算每一显示点之前,已经人为地引入了计 算偏差,因而它的显示效果不如DDA直线算法。 这一例子说明:整数算法较适合描绘整数图形,而实数算法既能描 绘整数图形,也能描绘实数图形。一般说来,实数算法比整数算法的精 度高(其精度仅受变量精度的影响),且适用性更广,但它的实现较为复 杂
二、窗口、视区及窗视坐标变换 窗口 通常用户在自然坐标系中定义图形,这个被定义图形的大小和复杂 程度是没有限制的。对于这类图形,人们有时需要观察了解整个图形的 全貌,这就要求把用户坐标系中较大指定范围(见图(a)中的图形全部送 显示屏中输出显示,见图(b);有时需要详细地观察了解某一局部范围内 的图形,如图(a)中小虚线方框所示的局部图形此时最好把这一局部图形 进行放大并使其图形占满整个显示平面,见图(c)。通常这个在用户坐标 系中指定的显示范围称为窗口,显然此时窗口内的图形是用户希望出现 在显示屏幕上的,窗口外的图形是用户不希望出现在显示屏幕上的,因 此窗口是裁剪图形的标准参照物。 输出显示 象0)显示器中显示的图形全貌 (a)自然坐标系中的图形 「<p (c)显示器中显示的局部图形
二、窗口、视区及窗视坐标变换 1.窗口 通常用户在自然坐标系中定义图形,这个被定义图形的大小和复杂 程度是没有限制的。对于这类图形,人们有时需要观察了解整个图形的 全貌,这就要求把用户坐标系中较大指定范围(见图(a))中的图形全部送 显示屏中输出显示,见图(b);有时需要详细地观察了解某一局部范围内 的图形,如图(a)中小虚线方框所示的局部图形此时最好把这一局部图形 进行放大并使其图形占满整个显示平面,见图(c)。通常这个在用户坐标 系中指定的显示范围称为窗口,显然此时窗口内的图形是用户希望出现 在显示屏幕上的,窗口外的图形是用户不希望出现在显示屏幕上的,因 此窗口是裁剪图形的标准参照物
2.视区 显示器屏幕的作用是用于显示图形与字符。但是人们为了提高屏幕的 利用率,丰富屏幕的显示内容,常把显示屏幕划分成几个不同的显示区域 以实现显示内容的分类输出 又件编)图助入①精式)工具口可片的Q)窗口帮的 日白当PB“他团回M1,团 科12·B1Ⅱ2蓝巨AA始 1第章問形的观察运算 2日4.1形的开1 2.视区 图形学中紧用的坐标闪 图形学中常用的堂标系 回各坐标系间的关系 日4.设备坐标系刻度尺寸的调整 显示器屏的作用是用于显 符,但是人们为了提高屏 回5.坐标系变换中的误差及其除 5.坐标系变换中的误若及其清除 口果区辣弃以果果区场叹显果用户的安 窗口、视区及窗视坐标变换 中这种不同的显示区域称为视区 始都,1时如,、口⊙回图着臣8·△,日日 动灯片备注 国圈中, 升画日①“回断mw时a别切a需书六母改字表格识 6乎1 D I
2.视区 显示器屏幕的作用是用于显示图形与字符。但是人们为了提高屏幕的 利用率,丰富屏幕的显示内容,常把显示屏幕划分成几个不同的显示区域, 以实现显示内容的分类输出