//GLRect.c
#include <windows.h>
#include <gl/glut.h>
#include<gl/gl.h>
#include<gl/glu.h>
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f); //绘图使用的颜色
glRectf(100.0f, 150.0f, 150.0f, 100.0f);
glFlush();
}
void ChangeSize(GLsizei w, GLsizei h)
{
if (h == 0)
h == 1;
glViewport(0, 0, w, h); //设置视区尺寸
glMatrixMode(GL_PROJECTION); //重置坐标系统,是投影变换复位
glLoadIdentity();
//建立修剪空间的范围
if (w <= h)
glOrtho(0.0f, 250.0f, 0.0f, 250.0f *h / w, 1.0f, -1.0f);
else
glOrtho(0.0f, 250.0f*w / h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void SetupRC(void) //用于初始化,常用来设置场景 渲染状态
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //设置窗口的清除色为白色
}
void main(void)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //初始化GLUT库OPENGL窗口的显示模式
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene); //回调函数
glutReshapeFunc(ChangeSize); //再整形函数
SetupRC();
glutMainLoop(); //启动主GLUT事件处理循环
}
#include <windows.h>
#include <gl/glut.h>
#include<gl/gl.h>
#include<gl/glu.h>
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f); //绘图使用的颜色
glRectf(100.0f, 150.0f, 150.0f, 100.0f);
glFlush();
}
void ChangeSize(GLsizei w, GLsizei h)
{
if (h == 0)
h == 1;
glViewport(0, 0, w, h); //设置视区尺寸
glMatrixMode(GL_PROJECTION); //重置坐标系统,是投影变换复位
glLoadIdentity();
//建立修剪空间的范围
if (w <= h)
glOrtho(0.0f, 250.0f, 0.0f, 250.0f *h / w, 1.0f, -1.0f);
else
glOrtho(0.0f, 250.0f*w / h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void SetupRC(void) //用于初始化,常用来设置场景 渲染状态
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //设置窗口的清除色为白色
}
void main(void)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //初始化GLUT库OPENGL窗口的显示模式
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene); //回调函数
glutReshapeFunc(ChangeSize); //再整形函数
SetupRC();
glutMainLoop(); //启动主GLUT事件处理循环
}