Delphi下OpenGL2d绘图(02)-画点


一、前言

图形的绘制可以使用glBegin()、glEnd()之间完成,绘制的框架代码可以使用Delphi下OpenGL2d绘图(01)-初始化中的代码。修改的部份为 Draw 函数的内容。

二、画点

使用glPointSize 函数指定栅格化点的直径。默认为1.0,只在GL_POINTS下起作用,关于消锯齿等功能以后再研究。使用glBegin(GL_POINTS)告诉OpenGL画点,参数GL_POINTS表示点,还有其他参数,如画线GL_LINES等,具体可以参考OpenGL单元的源码。glBegin()与glEnd()函数说明如下:

函数原型:

void glBegin(GLenummode)

void glEnd(void)

参数说明:

mode:创建图元的类型。可以是以下数值

    • GL_POINTS:把每一个顶点作为一个点进行处理,顶点n即定义了点n,共绘制N个点
    • GL_LINES:把每一个顶点作为一个独立的线段,顶点2n-1和2n之间共定义了n条线段,总共绘制N/2条线段
    • GL_LINE_STRIP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,第n和n+1个顶点定义了线段n,总共绘制n-1条线段
    • GL_LINE_LOOP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,然后最后一个顶点和第一个顶点相连,第n和n+1个顶点定义了线段n,总共绘制n条线段
    • GL_TRIANGLES:把每个顶点作为一个独立的三角形,顶点3n-2、3n-1和3n定义了第n个三角形,总共绘制N/3个三角形
    • GL_TRIANGLE_STRIP:绘制一组相连的三角形,对于奇数n,顶点n、n+1和n+2定义了第n个三角形;对于偶数n,顶点n+1、n和n+2定义了第n个三角形,总共绘制N-2个三角形
    • GL_TRIANGLE_FAN:绘制一组相连的三角形,三角形是由第一个顶点及其后给定的顶点确定,顶点1、n+1和n+2定义了第n个三角形,总共绘制N-2个三角形
    • GL_QUADS:绘制由四个顶点组成的一组单独的四边形。顶点4n-3、4n-2、4n-1和4n定义了第n个四边形。总共绘制N/4个四边形
    • GL_QUAD_STRIP:绘制一组相连的四边形。每个四边形是由一对顶点及其后给定的一对顶点共同确定的。顶点2n-1、2n、2n+2和2n+1定义了第n个四边形,总共绘制N/2-1个四边形
    • GL_POLYGON:绘制一个凸多边形。顶点1到n定义了这个多边形。

函数说明:

glBegin和glEnd函数限定了一组或多组图元的定点定义。

画点源码如下:

procedure TForm1.Draw;
begin
  // 清空缓冲区
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  // 设置点大小,不能再glBegin和glEnd之间
  glPointSize(10);
  glBegin(GL_POINTS);  // 画点
  // 设置点的颜色
  glColor3f(255, 0, 0);
  // 绘制点
  glVertex2f(50, 50);
  glColor3f(0, 255, 0);
  glVertex2f(100, 50);
  glColor3f(0, 0, 255);
  glVertex2f(150, 50);
  glEnd;
  SwapBuffers(FDC); //交换双缓冲区内容,这将把刚绘制的图形翻印到屏幕上。
end;
glColor3f()用于绘制点的颜色,glVertex2f绘制点的位置。效果图如下:

源码下载:http://files.cnblogs.com/lin557/OpenGL_02.zip

2014-06-26 by lin

优质内容筛选与推荐>>
1、怎样在 Linux 上查看某个端口的相关信息?
2、hb使用技巧:
3、分享:当单例(Singleton)爱上多线程——重复初始化问题
4、Training Very Deep Networks
5、JAVA读取TXT文件、新建TXT文件、写入TXT文件


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号