计算机圆形学 余敦辉 湖北大学数计学院
1 余 敦 辉 湖北大学 数计学院 计算机图形学
第五章基本图形生成算法 光栅扫描图形系统的结构 显示处帧缓视频控 监视器 理器存存 制 储器 CP□显示处理器系统存储器 系统总线 I/O设备 光柵扫描特点: 数据量大 快的要求 ☆显示的离散化 准的要求 ☆独立的图形显示处理器 快速,实时硬件处理的扫描转换
2 第五章 基本图形生成算法 光栅扫描图形系统的结构 光柵扫描特点: * 数据量大 - 快的要求 * 显示的离散化 - 准的要求 * 独立的图形显示处理器 - 快速,实时硬件处理的扫描转换 CP U 系统总线 显示处理器 系统存储器 显示处 理器存 储器 帧缓 存 视频控 制器 I/O设备 监视器
第五章基本图形生成算法 图形显示处理器(加速引擎) 任务:进行扫描转换( Scan Conversion) 扫描转换:将应用程序给出的图形定义数字化为一组像 素强度值,并放到帧缓存器 扫描转换的工作內容: 基本图形的生成 字符的生成 填充、裁剪 线型的处理 彩色处理 某些变换和管理
3 第五章 基本图形生成算法 图形显示处理器 (加速引擎) 任务:进行扫描转换(Scan Conversion) 扫描转换:将应用程序给出的图形定义数字化为一组像 素强度值,并放到帧缓存器 扫描转换的工作内容: -基本图形的生成 -字符的生成 -填充、裁剪 -线型的处理 -彩色处理 -某些变换和管理
第五章基本图形生成算法 坐标系统 为描述对象、构造场景或完成图形变换,需要 不同的坐标系! 1.建模坐标系一定义对象 2.世界坐标系一定义对象与外界环境的关系 3.设备坐标系定义图形显示的位置、大小 4.规范化坐标一为保证互换性(与设备无关) 而定义的辅助坐标
4 第五章 基本图形生成算法 坐标系统 为描述对象、构造场景或完成图形变换,需要 不同的坐标系! 1. 建模坐标系 -定义对象 2. 世界坐标系-定义对象与外界环境的关系 3. 设备坐标系 -定义图形显示的位置、大小 4. 规范化坐标 -为保证互换性(与设备无关) 而定义的辅助坐标
第五章基本图形生成算法 坐标系统 建模坐标 世界坐标 规范化坐标 设备坐标 绘图仪 其它输出设备 Modeling Coordinate Local coordinate Normalized Device Coordinate Master Coordinate World Coordinate Coordinate Screen Coordinate
5 第五章 基本图形生成算法 坐标系统 建模坐标 Modeling Coordinate Local Coordinate Master Coordinate 世界坐标 World Coordinate 绘图仪 其它输出设备 设备坐标 Device Coordinate Screen Coordinate 1 1 1 规范化坐标 Normalized Coordinate
第五章基本图形生成算法 5.1直线的扫描转换 光栅扫描显示下画直线存在的问题: (1)显示速度问题: 例:分辨率:1024×768,24Bit彩色, 帧存容量:1024×768×3=2,359,296Byte 刷新率85Hz:85×2,359,296=200,540,160(Byte/S) 存储器读出时间:~5nS (2)显示质量问题: 阶梯状 线的粗细不一 NOOOOOO 线的亮度差异
6 第五章 基本图形生成算法 5.1 直线的扫描转换 光栅扫描显示下画直线存在的问题: (1) 显示速度问题: 例:分辨率:1024×768,24Bit 彩色, 帧存容量:1024×768×3=2,359,296 Byte 刷新率 85Hz: 85× 2,359,296 =200,540,160 (Byte / S) 存储器读出时间:~5nS (2) 显示质量问题: 阶梯状 线的粗细不一 线的亮度差异
第五章基本图形生成算法 5.1直线的扫描转换 直线的绘制要求: 1直线要直 2.直线的端点要准确,即无定向性和断裂情况 3直线的亮度、色泽要均匀 4画线的速度要快 5要求直线具有不同的色泽、亮度、线型等 解决的问题 给定直线两端点P0(x0,y0)和P1(x1,y1),画出该直线
7 第五章 基本图形生成算法 5.1 直线的扫描转换 直线的绘制要求: 1.直线要直 2.直线的端点要准确,即无定向性和断裂情况 3.直线的亮度、色泽要均匀 4.画线的速度要快 5.要求直线具有不同的色泽、亮度、线型等 解决的问题: 给定直线两端点P0 (x0 ,y0 )和P1 (x1 ,y1 ),画出该直线
第五章基本图形生成算法 5.1直线的扫描转换 5.1.1数值微分法(DDA法) 直线的微分方程: DDA算法原理: 1 O +1=11+E·△x y+E·△ yi+l △ 8=1/max(△x△y) xiε△xxi1 X 图5-2DA算法原理
8 5.1.1 数值微分法(DDA法) 直线的微分方程: (5 -1) 1 0 1 0 k x x y y x y dx dy = − − = = 第五章 基本图形生成算法 5.1 直线的扫描转换 DDA算法原理: (5 - 2) 1 1 y y y x x x i i i i = + = + + + ε=1/max(|△x|,|△y|) xi ε△x y x yi xi+1 yi+1 ε△y 图5-2 DDA算法原理
第五章基本图形生成算法 5.1直线的扫描转换 max(△x△y)=△x,即k≤1的情况 i+11+E·Ax=x:+ △x=x.±1 =+6·Ay=y+A=y土k max(|△x||△y1)=|△yl,此时|k|≥1: x+1=x1+E·△x=x1+ 三x k +1=y+E·Ay=y+Ay=y±1
9 第五章 基本图形生成算法 5.1 直线的扫描转换 max(|△x|,|△y|)=|△x|,即|k|≤1的情况: max(|△x|,|△y|)=|△y|,此时|k|≥1: 1 (5 - 4) 1 1 1 1 1 = = + = + = = + = + + + i i i i i i i i y y y y y y y k x x y x x x x (5 - 3) 1 1 1 1 1 y y k x y y y y x x x x x x x i i i i i i i i = = + = + = = + = + + +
第五章基本图形生成算法 5.1直线的扫描转换 10 (round(xi+1/k), byi+1) Xi, y Kxi+,round(yi+k)) 图5-3DDA算法生成直线段 注意: round(x)=(int)(x+0.5
10 第五章 基本图形生成算法 5.1 直线的扫描转换 注意:round(x)=(int)(x+0.5) 图5-3 DDA算法生成直线段 (xi,yi) (xi+ 1,round(yi+ k)) (round(xi+1/k),yi+ 1)