用opengl画两条60度线的sample
时间: 2023-08-21 15:03:42 浏览: 55
下面是使用 OpenGL 画两条 60 度线的示例代码:
```c++
#include <GL/glut.h>
#include <math.h>
void drawLine(float x1, float y1, float x2, float y2) {
glBegin(GL_LINES);
glVertex2f(x1, y1);
glVertex2f(x2, y2);
glEnd();
}
void display() {
glClearColor(1.0, 1.0, 1.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-2.0, 2.0, -2.0, 2.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// 画第一条 60 度线
glColor3f(1.0, 0.0, 0.0);
float x1 = -1.0;
float y1 = tan(60.0 * 3.1415926 / 180.0) * x1;
float x2 = 1.0;
float y2 = tan(60.0 * 3.1415926 / 180.0) * x2;
drawLine(x1, y1, x2, y2);
// 画第二条 60 度线
glColor3f(0.0, 0.0, 1.0);
x1 = -1.0;
y1 = -tan(60.0 * 3.1415926 / 180.0) * x1;
x2 = 1.0;
y2 = -tan(60.0 * 3.1415926 / 180.0) * x2;
drawLine(x1, y1, x2, y2);
glFlush();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL 60 Degrees Line Example");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
其中,`drawLine` 函数用于画一条线段,`display` 函数用于绘制两条 60 度线,`main` 函数用于初始化 OpenGL,创建窗口并运行主循环。在 `display` 函数中,首先设置背景色为白色,然后设置投影矩阵和模型视图矩阵,接着使用 `glColor3f` 函数设置颜色,计算出两条 60 度线的起点和终点坐标,最后调用 `drawLine` 函数画出线段。运行该程序,可以看到窗口中画出了两条 60 度线。