查看: 41|回复: 0

[教程] Delphi下OpenGL2d绘图之画四边形的方法

[复制链接]

2

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-11-27
发表于 2014-7-14 14:58:08 | 显示全部楼层 |阅读模式

一、前言:

Delphi实现画四边形的方法基本上与前几遍文字代码是相同的。其区别知识在于glBegin()的参数“GL_QUADS”。绘制的框架代码可以使用Delphi下OpenGL2d绘图初始化中的代码,地址为https://www.jb51.net/article/52141.htm。修改的部份为 Draw 函数的内容。

二、画四边形方法:

使用GL_QUADS:绘制由四个顶点组成的一组单独的四边形。顶点4n-3、4n-2、4n-1和4n定义了第n个四边形。总共绘制N/4个四边形。这里学画四边形是为了画位图做准备。

设置颜色:

glColor3f(1, 0.5, 0); 可以设置四边形的颜色,参数为三部份,分别为 R、G、B的值,取得范围为0到1,1表示255,0.5表128。这里需要特别予以注意!

设置四边形的点:

glVertex2f(nleft, ntop); nleft、ntop表示四边形的点在窗口上的像素点位置。每个点的位置需按顺时针或逆时针设置。

代码如下:

procedure TForm1.Draw;
var
 l, t, w: Integer;
begin
 // 清空缓冲区
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 // 设置四边形的颜色
 glColor3f(1, 0.5, 0);
 // 绘制第一个多边形
 l := 10;
 t := 10;
 w := 64;
 glBegin(GL_QUADS);
 glVertex2f(l, t);
 glVertex2f(l + w, t);
 glVertex2f(l + w, t + w);
 glVertex2f(l, t + w);
 glEnd();
 // 绘制第二个多边形
 l := 80;
 t := 10;
 glColor3f(0, 0.5, 0);
 glBegin(GL_QUADS);
 glVertex2f(l, t);
 glVertex2f(l + w, t + w);
 glVertex2f(l + w, t);
 glVertex2f(l, t + w);
 glEnd();
 SwapBuffers(FDC); //交换双缓冲区内容,这将把刚绘制的图形翻印到屏幕上。
end;

完整代码点此下载

您可能感兴趣的文章:
  • Delphi下OpenGL2d绘图之画线的方法
  • Delphi下OpenGL2d绘图之画点的方法
  • Delphi使用OpenGL2d绘图之画图片Bmp的方法
  • opengl实现任意两点间画圆柱体
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部