openGL画正方矩形
时间: 2024-10-13 12:18:07 浏览: 26
在窗口内生成正方形程序-open GL编程
在OpenGL中画出正方形矩形,你可以使用类似上述绘制矩形的代码,只需要将宽度和高度设为相等即可。这里是一个简单的示例:
```c++
#include <GL/glut.h>
void drawSquare(float centerX, float centerY, float sideLength) {
// 设置颜色
glColor3f(1.0f, 0.0f, 0.0f); // 红色
// 正方形的四个顶点坐标
GLfloat vertices[] = {
centerX - sideLength / 2.0f, centerY - sideLength / 2.0f, // 上左
centerX + sideLength / 2.0f, centerY - sideLength / 2.0f, // 下右
centerX + sideLength / 2.0f, centerY + sideLength / 2.0f, // 下左
centerX - sideLength / 2.0f, centerY + sideLength / 2.0f // 上右
};
// 同样步骤,启用顶点数组、设置数据、绘制
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_QUADS, 0, 4); // 四个顶点构成一个正方形
glDisableClientState(GL_VERTEX_ARRAY);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutCreateWindow("OpenGL Square");
while (!glutDone()) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清屏
drawSquare(100, 100, 50); // 在屏幕中心绘制边长为50的正方形
glutSwapBuffers(); // 交换缓冲区
}
return 0;
}
```
这个例子中,`drawSquare`函数接收中心点的x和y坐标以及正方形的边长作为参数。正方形是由对角线的两个端点和底部的两个端点组成的,所以每个顶点都是相对于中心点偏移的。
阅读全文