当前位置:
文档之家› 第二章一个简单的二维光栅图形软件包讲义
第二章一个简单的二维光栅图形软件包讲义
位图:二值图像 像素图:多值图像 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 用图形软件包绘图
• 图元的声明
– 绘图纸,屏幕, – 坐标系
– 扫描转换:将顶点(参数表示的图形)转换为点阵表示的图 形
顶点(参数) 表示的图形