第二章一个简单的二维光栅图形软件包讲义
合集下载
02-计算机图形学基础(第二版)PPT课件

透镜组
光 孔
触钮开关
导线
笔体 光导纤维
图2.3 光笔的结构
2021/7/22
7
图形输入设备
触摸屏(touch screen) 当用手指或者小杆触摸屏幕时,触点位置
便以光学的(红外线式触摸屏)、电子的(电 阻式触摸屏和电容式触摸屏)或声音的(声音 探测式)方式记录下来。
2021/7/22
8
图形输入设备
随机扫描(random-scan)的图形显示器中电 子束的定位和偏转具有随机性,即电子束的扫 描轨迹随显示内容而变化,只在需要的地方扫 描,而不必全屏扫描。
2021/7/22
31
随机扫描的图形显示器
2
Y
2
3
1
1
3
t
1
X
2
3
图2.16 随机扫描图形显示器的工作原理
2021/7/22
32
随机扫描的图形显示器
2021/7/22
52
2.4 显示子系统
光栅扫描图形显示子系统的结构 绘制流水线 相关概念
2021/7/22
53
光栅扫描图形显示子系统的结构
CPU
系统 主存
显示 控的光栅图形显示子系统
2021/7/22
54
光栅扫描图形显示子系统的结构
CPU
系统 主存
帧缓存
2021/7/22
41
液晶显示器——原理
液晶分子的排列在微弱的外部电场、磁场或者 应力、温度变化等作用下非常容易改变。当液 晶分子的某种排列状态在电场作用下变为另一 种状态时,液晶的光学性质随之改变,这种产 生光被电场调制的现象称为液晶的电光效应。
2021/7/22
第二章一个简单的二维光栅图形软件包讲述

(x3,y3)
(x4,y4)
2018/9/15 SHU. Multimedia Center 7
图元属性
• • • • • 线型和线宽 Void SetLineStyle(enum LineStyle lineStyle); Void SetLineWidth(int lineWidth); 枚举变量 lineStyple 预定义之线型CONTINUOUS、DASHED、DOTTED
Void MarkerCoord(int x, int y); Void Marker(Point *pt); //端点做标记。
Void Polygon(int VertexCount, VertexList vertices); //画多边形。 Void RectanglePoint(Point* leftBottom, Point* rightTop); //画矩形
Void FillEllipseArc (Rectangle * extentRect,int startAngle,int endAngle); //扇形
2018/9/15 SHU. Multimedia Center 10
填充图元及其属性(续)
填充方式设置(控制填充图元的外观)
Void SetFillStyle(enum FillStyle fillstyle) FillStyle定义如下: enum FillStyle{ SOILD, //以当前前景色均匀填充图元 BITMAP_PATTERN_OPAQUE, // 以规则排列的位图填充; BITMAP_PATTERN_TRANSPARENT, PIXMAP_ PATTERN} //以规则排列的像素图填充种方式: • 三种指定颜色的方式 – 通过查色表索引值 – 通过颜色名称 – 通过红、绿、兰三分量 Void SetColorByName(cnum Colors colorName); //使用逻辑颜色名,实际对应的颜色取决于系统查色表 Void SetColor(int colorIndex); //直接使用整数值来指定,colorIndex即是指向查色表某表项的 索引值 Void SetColor(int red, int green, int blue); //直接赋颜色分量值(对真彩色系统而言)
(x4,y4)
2018/9/15 SHU. Multimedia Center 7
图元属性
• • • • • 线型和线宽 Void SetLineStyle(enum LineStyle lineStyle); Void SetLineWidth(int lineWidth); 枚举变量 lineStyple 预定义之线型CONTINUOUS、DASHED、DOTTED
Void MarkerCoord(int x, int y); Void Marker(Point *pt); //端点做标记。
Void Polygon(int VertexCount, VertexList vertices); //画多边形。 Void RectanglePoint(Point* leftBottom, Point* rightTop); //画矩形
Void FillEllipseArc (Rectangle * extentRect,int startAngle,int endAngle); //扇形
2018/9/15 SHU. Multimedia Center 10
填充图元及其属性(续)
填充方式设置(控制填充图元的外观)
Void SetFillStyle(enum FillStyle fillstyle) FillStyle定义如下: enum FillStyle{ SOILD, //以当前前景色均匀填充图元 BITMAP_PATTERN_OPAQUE, // 以规则排列的位图填充; BITMAP_PATTERN_TRANSPARENT, PIXMAP_ PATTERN} //以规则排列的像素图填充种方式: • 三种指定颜色的方式 – 通过查色表索引值 – 通过颜色名称 – 通过红、绿、兰三分量 Void SetColorByName(cnum Colors colorName); //使用逻辑颜色名,实际对应的颜色取决于系统查色表 Void SetColor(int colorIndex); //直接使用整数值来指定,colorIndex即是指向查色表某表项的 索引值 Void SetColor(int red, int green, int blue); //直接赋颜色分量值(对真彩色系统而言)
《图形光栅化》PPT课件讲解学习

11111100 01100110 01100110 01111100 01100110 01100110 11111100 00000000
字符
➢在实际应用中,有多种字体(如宋体、 楷体等),每种字体又有多种大小型 号,因此字库的存储空间是很庞大的。 解决这个问题一般采用压缩技术。
➢点阵字符的显示分为两步。首先从字 库中将它的位图检索出来。然后将检 索到的位图写到帧缓冲器中。
字符
解决这个问题一般采用压缩技术。对字型数 据压缩后再存储,使用时,将压缩的数据还原为 字符位图点阵。压缩方法有多种,最简单的有黑 白段压缩法,这种方法简单,还原快,不失真, 但压缩较差,使用起来也不方便,一般用于低级 的文字处理系统中。另一种方法是部件压缩法。 这种方法压缩比大,缺点是字型质量不能保证。 三是轮廓字型法,这种方法压缩比大,且能保证 字符质量,是当今国际上最流行的一种方法,基 本上也被认为是符合工业标准化的方法。
字符
• 字符指数字、字母、汉字等符号。 • 计算机中字符由一个数字编码唯一标识。
• 国际上最流行的字符集:“美国信息交换用 标准代码集”,简称ASCII码。它是用7位二 进制数进行编码表示128个字符;包括字母、 标点、运算符以及一些特殊符号。
Hale Waihona Puke 字符• 汉字编码的国家标准字符集:GB2312- 80。该字符集分为94个区,94个位,每 个符号由一个区码和一个位码共同标识。 区码和位码各用一个字节表示。
➢提高分辨率
➢区域采样 ➢加权区域取样
反走样 (Anti-Aliasing)
• 不光滑(阶梯状)的图形边界
反走样 (Anti-Aliasing)
• 图形细节失真
反走样 (Anti-Aliasing)
字符
➢在实际应用中,有多种字体(如宋体、 楷体等),每种字体又有多种大小型 号,因此字库的存储空间是很庞大的。 解决这个问题一般采用压缩技术。
➢点阵字符的显示分为两步。首先从字 库中将它的位图检索出来。然后将检 索到的位图写到帧缓冲器中。
字符
解决这个问题一般采用压缩技术。对字型数 据压缩后再存储,使用时,将压缩的数据还原为 字符位图点阵。压缩方法有多种,最简单的有黑 白段压缩法,这种方法简单,还原快,不失真, 但压缩较差,使用起来也不方便,一般用于低级 的文字处理系统中。另一种方法是部件压缩法。 这种方法压缩比大,缺点是字型质量不能保证。 三是轮廓字型法,这种方法压缩比大,且能保证 字符质量,是当今国际上最流行的一种方法,基 本上也被认为是符合工业标准化的方法。
字符
• 字符指数字、字母、汉字等符号。 • 计算机中字符由一个数字编码唯一标识。
• 国际上最流行的字符集:“美国信息交换用 标准代码集”,简称ASCII码。它是用7位二 进制数进行编码表示128个字符;包括字母、 标点、运算符以及一些特殊符号。
Hale Waihona Puke 字符• 汉字编码的国家标准字符集:GB2312- 80。该字符集分为94个区,94个位,每 个符号由一个区码和一个位码共同标识。 区码和位码各用一个字节表示。
➢提高分辨率
➢区域采样 ➢加权区域取样
反走样 (Anti-Aliasing)
• 不光滑(阶梯状)的图形边界
反走样 (Anti-Aliasing)
• 图形细节失真
反走样 (Anti-Aliasing)
chp2-光栅图形学2

2.7 反走样
不光滑(阶梯状)的图形边界
走样现象
2.7 反走样
图形细节失真
走样现象
2.7 反走样
狭小图形的遗失与 动态图形的闪烁
走样现象
2.7 反走样
什么是反走样 在图形显示过程中,用于减少或消除走样现象 的方法。 提高分辨率方法 非加权区域采样 加权区域采样
2.5.2 有序边表算法
边的连贯性 第一类交点:新出现的边与扫描线的交点 第二类交点:位于同一条边上的后继交点
2.5.2 有序边表算法
交点的取整规则 要求:使生成的像素全部位于多边形之内 用于线画图元生成的四舍五入原则导致部分像素位 于多边形之外,从而不可用 假定非水平边与扫描线y=e相交,交点的横坐标为x.
2.5.2 有序边表算法
规则1 X为小数,即交点落于扫描线上两个相邻像素之间 (a)交点位于左边之上,向右取整 (b)交点位于右边之上,向左取整
2.5.2 有序边表算法
规则2 边界上象素的取舍问题,避免填充扩大化。 解决方法: 边界象素:规定落在右边界的象素不予填充。具体实现 时,只要对扫描线与多边形的相交区间左闭右开。
基 底
第二章 光栅图形学
2.1 2.2 2.3 2.4 2.5 2.6 2.7 直线段的扫描转换算法 圆、椭圆和圆弧的生成 多边形填充区 OpenGL学习 多边形扫描算法 字符属性 反走样
30
2.7 反走样
走样: 用离散量(像素)表示连续的量(图形)而引起 的失真,叫混淆或叫走样(aliasing)。 光栅图形的走样现象: 阶梯状边界; 图形细节失真; 狭小图形遗失:动画序列中时隐时现,产生闪烁。
26
计算机图形学 一个二维光栅图形软件包

2011-4-16
Graphics Lab.PKU
17
基本的交互处理(续)
输入方式:取样方式、事件驱动。 取样输入设备的状态,效率不高, 中断驱动:何时处理中断?增加程序设计难度 事件驱动:后台监控程序,事件队列。主动处理。
初始化输入设备; do{ waitEvent(event); switch(event) { case EVENT1: procedure1; break; case EVENT2: procedure2; break; …;} }while (TRUE);
2011-4-16
Graphics Lab.PKU
15
基本的交互处理(续)
• 1. 2. 3. 4. 5. 交互系统设计的基本原则: 提供简单一致的交互操作序列;(menu,button…) 交互的每一阶段,清晰显示可选项; 样式简洁,选项有层次、简单; 给用户适当的反馈(highlight,光标形状…); 允许用户取消操作(Undo)
第三讲 一个简单的二维光栅图形软件包
SRGP(Simple Raster Graphics Package)
3.1 用图形软件包绘图 3.2 基本的交互处理 3.3 光栅操作
输出流应用 模型Fra bibliotek应用 程序
SRGP
图形 硬件 设备
输入流
2011-4-16 Graphics Lab.PKU 1
3.1 用图形软件包绘图
2011-4-16 Graphics Lab.PKU 6
Void CircleArc(Point *center, int radius, int startAngle,int endAngle) //画圆弧 Void EllipseArc(Rectangle *externRect, int startAngle,int endAngle) //画椭圆 Typedef struct{ Point leftBottom,rightTop;} Rectangle
计算机图形学第二讲光栅图形学ppt课件

中点画线法
构造判别式:
d=F(M)=F(xp+1,yp+0.5)
P2
=a(xp+1)+b(yp+0.5)+c
Q
当d<0,M在直线(Q点)下 方,取右上方P2;
P=(xp,yp) P1
当d>0,M在直线(Q点)上
方,取右方P1;
当d=0,选P1或P2均可, 约定取P1;
能否采用增量算法呢?
中点画线法
Bresenham算法
Bresenham画线算法
在直线生成的算法中Bresenham算法 是最有效的算法之一。令 k=Δy/Δx, 就0≤k≤1的情况来说明Bresenham算法。 由DDA算法可知:
yi+1=yi+k (1) 由于k不一定是整数,由此式求出的yi也 不一定是整数,因此要用坐标为(xi,yir) 的象素来表示直线上的点,其中yir表示 最靠近yi的整数。
x y int(y+0.5)
00
0
Line: P0(0, 0)-- P1(5, 2)
1 0.4 0
3
2 0.8 1
2
3 1.2 1
4 1.6
2
1
5 2.0
2
0 12 3 4 5
数值微分(DDA)法
• 缺点: 在此算法中,y、k必须是float,且每一 步都必须对y进行舍入取整,不利于硬件实现。
• 原理:
更新为(x+1,y+1),同时将e更新为e-2△x;否则 (x,y)更新为(x+1,y)。 5.当直线没有画完时,重复步骤3和4。否则结束。
Bresenham画线算法
BresenhamLine(x0,y0,x1,y1,color) {
CAD 2002电子教案第2章 二维绘图

第2章 二维绘图 章
3.选项说明 . (1)Pen:控制抬笔或落笔. ) :控制抬笔或落笔. 命令. (2)eXit:结束 ) :结束Sketch命令. 命令 命令. (3)Quit:结束 ) :结束Sketch命令. 命令 4)Record:记录所画的图形,但不退出Sketch命令 命令. (4)Record:记录所画的图形,但不退出Sketch命令. (5)Connect:以上一次所画图形的终点为起点继续徒手 ) : 画线. 画线. 4.实例练习 . 使用Sketch命令画波浪线(如图2.17所示) 命令画波浪线(如图 所示) 使用 命令画波浪线 所示 5.注意事项(略) .注意事项(
2.1.1 POINT (点)
POINT命令用于在指定位置绘制单个点. 命令用于在指定位置绘制单个点. 命令用于在指定位置绘制单个点 1.输入命令的方法 . 2.命令行提示 . Command:Point ↙ : Point: : 3.绘制多个点 . 4.点的样式(如图 .点的样式(如图2.2所示 ) 所示
第2章 二维绘图 章
1.输入命令的方法 . 下 拉 菜 单 : 单 击 Draw | Circle | Center , Radius. . 工具栏:单击Draw工具栏 工具栏:单击 工具栏 2.命令行提示 . Command:CIRCLE↙ : ↙ 如图2.20所示. 如图 所示. 所示 的工具按钮. 的工具按钮. 命令行:输入 并回车. 命令行:输入CIRCLE并回车. 并回车
返回本节
第2章 二维绘图 章
2.1.3 MEASURE(等距点) (等距点)
MEASURE 命令能在选定的实体上按指定间距 放置点标记符号或图块. 放置点标记符号或图块. 1.输入命令的方法 . 下拉菜单:单击Draw|Point|Measure. 下拉菜单:单击Draw|Point|Measure. 命令行:输入MEASURE并回车. 命令行:输入 并回车. 并回车 2.命令提示窗口 . Command:MEASURE↙ : ↙
AutoCAD 2014机械制图课件第2章二维图形命令

命令行:PLINE
菜单:绘图→多段线
工具栏:绘图→多段线
【操作步骤】 命令:PLINE ↙
绘制多段线
指定起点:(指定多段线的起始点)
当前线宽为 0.0000 (提示当前多段线的宽度)
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:
绘制平行线
圆头平键
2.2.4 圆环
【执行方式】 命令行:DONUT 菜单:绘图→圆环 【操作步骤】 命令: DONUT↙ 指定圆环的内径 <默认值>: (指定圆环内径) 指定圆环的外径 <默认值>: (指定圆环外径) 指定圆环的中心点或 <退出>:(指定圆环的中心点) 指定圆环的中心点或 <退出>:(继续指定圆环的中心点,则继续绘制相同内
2.1.1 直线段
【执行方式】 命令行:LINE 菜单:绘图→直线 工具栏:绘图→直线【操作步骤】 命令: LINE↙ 指定第一点:(输入直线段的起点,用鼠标指定点或者给定点的坐标) 指定下一点或 [放弃(U)]: (输入直线段的端点,也可以用鼠标指定一
定角度后,直接输入直线的长度) 指定下一点或 [放弃(U)]: (输入下一直线段的端点。输入选项“U”表
(BLOCK)。
画出等分点
2.4.3 测量点
【执行方式】 命令行:MEASURE(缩写名:ME) 菜单:绘图→点→定距等分 【操作步骤】 命令: MEASURE↙ 选择要定距等分的对象:(选择要设置测量点的实体) 指定线段长度或 [块(B)]:(指定分段长度,绘制结果如图) 【选项说明】 设置的起点一般是指指定线的绘制起点。 在第二提示行选择“块(B)”选项时,表示在测量点处插入指定的块,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位图:二值图像 像素图:多值图像 SRGP提供位图/像素图资源表
2020/8/1
SHU. Multimedia Center
11
2020/8/1
SHU. Multimedia Center
4
Void PutPixel(int x, int y, int color); //画点函数,color :颜色值。
Void LineCoord(int x0, int y0,int x1,int y1); Void Line (Point *pnt0, Point * pnt1); //画线函数
扫描转换
点阵表示 的图形
用户
显示系统
2020/8/1
SHU. Multimedia Center
3
2.1用图形软件包绘图
• 基本图元绘制:点、直线段、折线、 多边形、 圆弧、字符。
• 数据类型: Struct Point{ int x, y;} typedef int * VertexCoordList; typedef Point *VertexList;
Void FillRectangle(Rectangle *rec);//矩形 Void FillPolygon(int vertexCount, VertexList Vertices);
//多边形 Void FillEllipse(Rectangle * extentRect); // 椭圆
Void FillEllipseArc (Rectangle * extentRect,int startAngle,int endAngle);
Void polylineCoord( int vertexCount,VertexCoordList xArray, VertexCoordList yArray);
Void polyline(int vertexCount, VertexList vertices)
//画折线函数。
2020/8/1
//扇形
2020/8/1
SHU. Multimedia Center
10
填充图元及其属性(续)
填充方式设置(控制填充图元的外观)
Void SetFillStyle(enum FillStyle fillstyle) FillStyle定义如下:
enum FillStyle{ SOILD, //以当前前景色均匀填充图元 BITMAP_PATTERN_OPAQUE, // 以规则排列的位图填充; BITMAP_PATTERN_TRANSPARENT, PIXMAP_ PATTERN} //以规则排列的像素图填充;
Point* rightTop); //画矩形
2020/8/1
SHU. Multimedia Center
6
Void CircleArc(Point *center, int radius, int startAngle,int endAngle)
//画圆弧
Void EllipseArc(Rectangle *externRect, int startAngle,int endAngle)
SHU. Multimedia Center
5
Void MarkerCoord(int x, int y); Void Marker(Point *pt); //端点做标记。
Void Polygon(int VertexCount, VertexList vertices);
//画多边形。 Void RectanglePoint(Point* leftBottom,
索引值
Void SetColor(int red, int green, int blue); //直接赋颜色分量值(对真彩色系统而言)
2020/8/1
SHU. Multimedia Center
9
填充图元及其属性
封闭的图元有二种绘制方式 -- 线画图:只画出边框; -- 填充图:填充其内部区域;
第二章 一个简单的二维光栅图形软件包
SRGP(Simple Raster Graphics Package)
3.1 用图形软件包绘图 3.2 基本的交互处理 3.3 光栅操作
输出流
应用 模型
应用 程序
SRGP
图形 硬件 设备
输入流
2020/8/1
SHU. Multimedia Center
1
2.1 用图形软件包绘图
• SRGP中,设置颜色属性有三种方式: • 三种指定颜色的方式 – 通过查色表索引值 – 通过颜色名称 – 通过红、绿、兰三分量
Void SetColorByName(cnum Colors colorName); //使用逻辑颜色名,实际对应的颜色取决于系统查色表
Void SetColor(int colorIndex); //直接使用整数值来指定,colorIndex即是指向查色表某表项的
• 图元在显示时被扫描转换成离散的像素写入帧缓冲 器中,线型控制可看作有选择地写像素的位屏蔽器 (bit marker). --位屏蔽器为‘0’表示帧缓存中相应的像素值不变
(即透明),为‘1’表示用线段的颜色值代替帧缓存中相应的像素值。
2020/8/1
Hale Waihona Puke SHU. Multimedia Center
8
图元属性
//画椭圆 Typedef struct{ Point leftBottom,rightTop;} Rectangle (x3,y3)
(x4,y4)
2020/8/1
SHU. Multimedia Center
7
图元属性
• 线型和线宽 • Void SetLineStyle(enum LineStyle lineStyle); • Void SetLineWidth(int lineWidth); • 枚举变量 lineStyple • 预定义之线型CONTINUOUS、DASHED、DOTTED
? 图元的声明 ? 图元的属性 ? 填充图元及属性 ? 保存和恢复图元的属性 ? 字符
2020/8/1
SHU. Multimedia Center
2
2.1 用图形软件包绘图
• 图元的声明
– 绘图纸,屏幕, – 坐标系
– 扫描转换:将顶点(参数表示的图形)转换为点阵表示的图 形
顶点(参数) 表示的图形