openGL+VS2010的例程--静态平滑变色三角形(二维)

效果图如上:

步骤:首先,绘制顶点颜色不同的三角形;然后,设置边框大小改变时,重新按固定长宽比例投影,到整个显示界面。

实现代码如下:

#include <GL\glut.h>

void Display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glLoadIdentity();
    glBegin(GL_POLYGON);
        glColor3f(0.0,0.0,0.0);
        glVertex3f(-0.5,-0.5,-3.0);
        glColor3f(1.0,0.0,0.0);
        glVertex3f(0.5,-0.5,-3.0);
        glColor3f(0.0,0.0,1.0);
        glVertex3f(0.5,0.5,-3.0);
    glEnd();
    glFlush();            //Finish rendering
}

void Reshape(int x, int y)
{
    if (y == 0 || x == 0) return;  //Nothing is visible then, so return
    //Set a new projection matrix
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    //Angle of view:40 degrees
    //Near clipping plane distance: 0.5
    //Far clipping plane distance: 20.0
    gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);
    glMatrixMode(GL_MODELVIEW);
    glViewport(0,0,x,y);  //Use the whole window for rendering
}

int main (int argc, char **argv)
{
    //Initialize GLUT
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(300,300);
    //Create a window with rendering context and everything else we need
    glutCreateWindow("Intro");
    glClearColor(0.0,0.0,0.0,0.0);
    //Assign the two used Msg-routines
    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    //Let GLUT get the msgs
    glutMainLoop();
    return 0;
}
时间: 2024-10-10 12:40:44

openGL+VS2010的例程--静态平滑变色三角形(二维)的相关文章

openGL+VS2010的例程--旋转变色立方体(三维)

效果图如上. 步骤:首先,变换模型视角:然后,改变颜色:最后,利用顶点数组绘制立方体. 源代码如下: #include <GL/glut.h> // 绘制立方体 // 将立方体的八个顶点保存到一个数组里面 static const float vertex_list[][3] = { -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f,

openGL+VS2010的例程--旋转贴图灯笼(三维)

效果图如上: 步骤:略. 常见问题: 1.编译提示"gl/glaux.h"不存在,多发生在VS2008版本以上. 解决办法:下载包含"glaux.h"的库文件. 下载地址:http://yunpan.cn/cKZPLCcQufqRi 访问密码 ba74 2.运行时提示”text1.bmp“打开失败. 解决办法:将2个贴图文件放在项目文件夹下,如:X:...\Textures1\textures1内. 实现代码如下: main.cpp 1 /*************

openGL+VS2010的例程--特效(三维)

效果图如上: 步骤:略. 实现代码如下: main.cpp 1 /********************************************************************** 2 3 Particle Engine / Billboarding 4 5 October, 21st, 2002 6 7 This tutorial was written by Philipp Crocoll 8 Contact: 9 [email protected] 10 www.

openGL+VS2010的例程--空间摄影机注释版(三维)

效果图如上: 步骤:请看注释,这里略. 实现代码,有3个文件,如下: 1.main.cpp 1 /********************************************************************** 2 3 Camera with OpenGL 4 5 June, 11th, 2000 6 7 This tutorial was written by Philipp Crocoll 8 Contact: 9 [email protected] 10 www

openGL+VS2010的例程--立体四面体(二维)

说明:通过6条线段组合,构造一个立体四面体,是最基本的二维实现. 实现代码如下: #include <GL/glut.h> void init(void) { glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 200.0, 0.0, 150.0); } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0

openGL+VS2010的例程--城堡模型注释版(三维)

效果图如上: 步骤:略,构成顺序参考下图1.2. 图1 城墙构成顺序说明图: 图2  塔楼构成说明图:略 实现代码如下: main.cpp 1 /********************************************************************** 2 3 Castle - using Display Lists 4 5 June, 12th, 2000 6 7 This tutorial was written by Philipp Crocoll 8 C

openGL+VS2010的例程--旋转立方体(三维)

效果图如上: 步骤:首先,设置模型视角往后退,再旋转视角:然后,用默认绘制立方体函数绘制:最后,利用空闲对模型做角度微调. 实现代码如下: 1 #include <GL\glut.h> 2 3 GLfloat xRotated, yRotated, zRotated; 4 5 void Display(void) 6 { 7 glClear(GL_COLOR_BUFFER_BIT); 8 glLoadIdentity(); 9 glTranslatef(0.0,0.0,-4.0); 10 gl

openGL+VS2010的例程--太阳地球月球运动模型(三维)

效果图如上: 步骤:略 实现代码如下: 1 #include "windows.h" 2 #include <gl\glut.h> 3 4 #define SunSize 0.4 5 #define EarthSize 0.06 6 #define MoonSize 0.016 7 8 GLfloat SpeedMultiplicator = 1.0; 9 GLfloat DaysPerYear = 50.0; //OK, ok... but it is soo slow

openGL+VS2010的例程--太阳地球月球运动模型增强版(三维)

效果图如上: 步骤:请看注释,这里略. 实现代码如下: 1 #include "windows.h" 2 #include <gl\glut.h> 3 4 // 三者的大小比例 5 #define SunSize 0.4 6 #define EarthSize 0.06 7 #define MoonSize 0.016 8 9 GLfloat SpeedMultiplicator = 0.01;// 运行倍数 10 // 时间比例 11 GLfloat DaysPerYea