Delphi下OpenGL2d绘图之画点的方法

 更新时间:2014年07月14日 12:03:48   投稿:shichen2014   我要评论
这篇文章主要介绍了Delphi下OpenGL2d绘图之画点的方法,需要的朋友可以参考下

一、前言

Delphi图形的绘制可以在glBegin()、glEnd()之间完成,绘制的框架代码可以使用Delphi下OpenGL2d绘图的初始化代码,具体内容可参考本站//www.jb51.net/article/52141.htm。修改的部份为 Draw 函数的内容。

二、画点

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

函数原型:

void glBegin(GLenum mode)

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(1, 0, 0);
 // 绘制点
 glVertex2f(50, 50);
 glColor3f(0, 1, 0);
 glVertex2f(100, 50);
 glColor3f(0, 0, 1);
 glVertex2f(150, 50);
 glEnd;
 SwapBuffers(FDC); //交换双缓冲区内容,这将把刚绘制的图形翻印到屏幕上。
end;

glColor3f()用于绘制点的颜色,glVertex2f绘制点的位置。

完整代码点此下载

相关文章

  • Delphi控件ListView的属性及使用方法详解

    Delphi控件ListView的属性及使用方法详解

    这篇文章主要介绍了Delphi控件ListView的属性及使用方法详解,对于Delphi控件ListView做一复习总结,需要的朋友可以参考下
    2014-07-07
  • Delphi中判断文件是否为文本文件的函数

    Delphi中判断文件是否为文本文件的函数

    在用Delphi 编程处理文本文件的时候,如果要装载的文件比较大,你可能会想在文件装载过程中提供一个装载进度的提示--那么你就必需自己编写直接通过文件打开/读取函数来装载文件内容的函数。
    2008-03-03
  • Delphi实现获取进程列表及相关信息的实例

    Delphi实现获取进程列表及相关信息的实例

    这篇文章主要介绍了Delphi实现获取进程列表及相关信息的实例,希望通过本文大家能实现这样的功能,需要的朋友可以参考下
    2017-09-09
  • delphi 正弦曲线图

    delphi 正弦曲线图

     在Delphi中没有直接正弦曲线的函数。但是在科学研究中,正弦曲线的应用是非常广泛的,本实例介绍如何绘制正弦曲线。
    2008-03-03
  • Delphi修改操作注册表权限的代码

    Delphi修改操作注册表权限的代码

    Delphi修改操作注册表权限的代码,使用Delphi的朋友可以参考下。
    2011-09-09
  • Delphi实现获取磁盘空间大小的方法

    Delphi实现获取磁盘空间大小的方法

    这篇文章主要介绍了Delphi实现获取磁盘空间大小的方法,是一个很实用的功能,需要的朋友可以参考下
    2014-07-07
  • 插件管理框架 for Delphi(一)

    插件管理框架 for Delphi(一)

    插件管理框架 for Delphi许多软件采用“插件”(PlugIns)来扩展其功能,比如PhotoShop所支持的各类滤镜就是插件;我们所熟知的Winamp,也有许多皮肤以及可视效果插件。再有微软的windows media player,以及QQ,冲浪软件Opera……采用插件技术的软件数不胜数,而各个软件的具体实现方式也是五花八门,各有特点。
    2008-03-03
  • 为什么继续选择DELPHI(即将逝去的Delphi前景在何方)

    为什么继续选择DELPHI(即将逝去的Delphi前景在何方)

    已经钻DELPHI很深了,当然现在DELPHI是过了最辉煌的时代。但为什么要继续下去,而不转向其它的?这是不是死脑筋
    2018-02-02
  • Delphi实现碰撞球体完整实例代码

    Delphi实现碰撞球体完整实例代码

    这篇文章主要介绍了Delphi实现碰撞球体完整实例代码,通过该实例,读者可以完整的了解一个Delphi项目的创建过程,加深对Delphi运行原理的了解,需要的朋友可以参考下
    2014-07-07
  • Delphi实现判断网址是否存在及是否可以打开的方法

    Delphi实现判断网址是否存在及是否可以打开的方法

    这篇文章主要介绍了Delphi实现判断网址是否存在及是否可以打开的方法,需要的朋友可以参考下
    2014-07-07

最新评论