您的位置:首页 > 运维架构

opcv学习日志二 输出图元及属性

2013-09-03 01:54 330 查看
图形输出原语graphic output primitive 简称为图元:图形软件包中用来描述各种图形元素的函数。

描述对象几何要素的输出图元一般称为几何图元。 点的定位和直线段是最简单的几何图元。

通过将场景信息传给观察函数、由观察函数识别可见面、将对象映射到视频监视器上来实现对象的显示。

扫描转换过程将颜色值等场景信息保存到帧缓存的响应的位置,从而在输出设备上显示场景中的对象。

屏幕坐标:

实用软件命令可以按照任何方式设定屏幕位置的参考系统。描述场景几何要素的坐标值由观察函数转换为帧缓存中的整数像素位置。

图元的扫描转换算法 使用定义的坐标描述来确定显示像素的位置。

glOrtho2D命令设定一个二维笛卡儿坐标系。

一旦确定了一个对象的像素位置,必须将合适的颜色值存入帧缓存。我们实用一个底层函数:setPixel(x,y)

该函数将当前颜色设定值存入帧缓存的整数坐标位置(x,y)处,该位置相对于屏幕坐标原点而选定。有时我们

也希望获得一个像素位置的当前帧缓存设置。可以用下列底层函数来获得:

getPixel(x,y,color); 参数color得到一个与存储在位置(x,y)的像素中的RGB组合对应的整数值。

画点函数

glVectex*(); *表示函数要有后缀码。后缀码用来指明空间尺寸、用作坐标值的数据类型和可能的向量

形式坐标描述。

class wcPt2D{
    public:
           GLfloat x,y;
};
wcPt2D pointPos;
pointPos.x=120.75;
pointPos.y=45.39
glBegin(GL_POINTS)
    glVertex2f(pointPos.x,pointPos.y);
glEnd();


我们可以在C++过程中实用OpenGL画点函数来实现SetPixel命令。



画线

要在光栅监视器上显示一线段,图形系统必须先将2端点投影到整数屏幕坐标,并确定离2端点间的直线路径最近
的像素位置。结下来将一线段数字化为一组离散的整数位置。如计算出的线位置(10.48,12.11)转换为像素(10,12)。舍入整数,引起除水平和垂直以外所有线段的阶梯效应(锯齿形)。光栅线段特有的阶梯现象在低分辨系统特别容易看出来,高分系统可以得到改善。平滑光栅线段的更有效技术是基于调整线路经上的像素强度。

在光栅系统中,通过像素绘制直线,水平和垂直方向的步长收到像素间距的限制。也就是必须
在离散位置上对直线取样。并且在每个取样位置上确定距直线最近的像素。

顶点数组

vertex array ,可以利用很少的喊声调用来安排场景的描述信息。
步骤:
1.引用函数glEnableClientState(GL_VERTEX_ARRAY)激活OpenGL的顶点数组特性。
2.引用glVertexPointer指定顶点坐标的位置和数据格式。
3.使用子程序如glDrawElemets显示场景,该子程序可处理多个图元而仅需少量的函数调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: