今天心情巨差,心情差到来更博客。刚才实现了OpenGL的菜单选项。
我来写一下。
首先来说一下这个函数。我也是没看博客,直接是看代码的用法自己理解的。就是这个 glutCreateMenu(myMenu); // 注册菜单回调函数。
括号里面的myMenu是我定义的方法名,这个方法的参数列表一定要是一个int型。菜单的实现的话就是通过添加菜单元素以及索引,索引即为传递的参数。对应myMenu中参数对应的各种情况。具体接下来我给出代码来理解一下吧。
#include<glut.h>
#include<stdlib.h>
void DrawPoints(void) // 画点的函数
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glPointSize(10);
glBegin(GL_POINTS);
glVertex2f(-0.5f, -0.5f);
glVertex2f(-0.5f, 0.5f);
glVertex2f(0.5f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
glFlush();
}
void DrawTriangle(void) // 画三角形的函数
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON);
glVertex2f(0.0f,0.5f);
glVertex2f(-0.5f, 0.0f);
glVertex2f(0.5f,0.0f);
glEnd();
glFlush();
}
void DrawRect(void) // 画矩形的函数
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f,1.0f,0.0f);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
void myMenu(int value) // glutCreateMenu需