1. 应用OpenGL的库函数编写一个绘制彩色六边形的程序,要求绘制的三基色彩色分量从键盘输入
时间: 2024-04-29 08:22:59 浏览: 102
以下是用OpenGL的库函数编写绘制彩色六边形的程序,可以从键盘输入三个基色的RGB值:
```c++
#include <GL/glut.h>
#include <iostream>
using namespace std;
GLfloat r, g, b;
void init() {
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 500.0, 0.0, 500.0);
}
void drawHexagon() {
glBegin(GL_POLYGON);
glColor3f(r, g, b);
glVertex2i(200, 200);
glVertex2i(300, 200);
glVertex2i(350, 250);
glVertex2i(300, 300);
glVertex2i(200, 300);
glVertex2i(150, 250);
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
drawHexagon();
glFlush();
}
int main(int argc, char** argv) {
cout << "Enter RGB values for the hexagon (0.0-1.0):" << endl;
cout << "R: ";
cin >> r;
cout << "G: ";
cin >> g;
cout << "B: ";
cin >> b;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("Colored Hexagon");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
首先定义了三个全局变量 `r`、`g`、`b`,表示输入的RGB值。在`init()`函数中设置背景色为白色,并将坐标系设置为二维平面。`drawHexagon()`函数用于绘制六边形,其中调用`glBegin()`和`glEnd()`函数表示开始和结束顶点的绘制,`glColor3f()`函数设置顶点的颜色。`display()`函数清空显示窗口并调用`drawHexagon()`函数绘制六边形,最后使用`glFlush()`函数将图形输出到屏幕上。在`main()`函数中先提示用户输入RGB值,然后使用`glut`库函数创建窗口并注册回调函数,进入主循环等待用户操作。
阅读全文