我是靠谱客的博主 暴躁钥匙,最近开发中收集的这篇文章主要介绍图形学课程01,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <stdlib.h>
#include <stdio.h>
#include <GL/glut.h> // GLUT头文件
#include <iostream>
using namespace std;
int gx = 50;
int gy = 100;

// 鼠标事件函数
void onMouse(int button, int state, int x, int y)
{
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)//左键且按下
    {
        gx = x;
        gy = y;
        glutPostRedisplay();
    }
}

void onDisplay()
{
    // 设置清屏颜色,0`1之间的浮点数
    glClearColor(1, 1, 1, 1);
    // 用指定颜色清除帧缓存
    glClear(GL_COLOR_BUFFER_BIT);

    /*
        //线指定红色
        glColor3f(1, 0, 0);
        //开始画线
        glBegin(GL_LINES);
        // 两个二维点构成直线
        glVertex2d(0, 0);
        glVertex2d(100, 100);
        //结构从中心向外画,因为坐标轴(十字架),高中数学一样,但加了onReshape后就是左上为(0,0)
        glEnd();
    */

    //输出字符
    glColor3f(0, 0, 1);
    int i;
    char text[] = "hahahaaha!";
    // 定位输出位置,左边50,顶边100
    glRasterPos2d(gx, gy);
    // 设置字符串颜色
    glColor3f(1, 0, 0);
    for (i = 0; text[i] != ''; i++)
    {
        // 输出字符
        glutBitmapCharacter(GLUT_BITMAP_8_BY_13, text[i]);
    }

    // 前后交换双缓存
    glutSwapBuffers();
}

void onReshape(int w, int h)
{
    // 设置视口大小,(冲印出来的东西)
    glViewport(0, 0, w, h);
    // 切换矩阵模式为投影矩阵
    glMatrixMode(GL_PROJECTION);
    // 载入单位矩阵
    glLoadIdentity();
    // 进行二维平行投影
    gluOrtho2D(0, w, h, 0);
    // 切换矩阵模式为模型矩阵
    glMatrixMode(GL_MODELVIEW);
    // 发送重绘
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    // 初始化glut
    glutInit(&argc, argv);
    // 设置OpenGL显示模式(双缓存(减少图形闪烁), RGB颜色模式, 深度缓存)
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    // 设置窗口初始尺寸
    glutInitWindowSize(400, 300);
    // 设置窗口初始位置
    glutInitWindowPosition(100, 100);
    // 设置窗口标题
    glutCreateWindow("Hello");
    // 设置显示回调函数
    glutDisplayFunc(onDisplay);
    //窗口尺寸大小回调
    glutReshapeFunc(onReshape);
    //设置鼠标函数
    glutMouseFunc(onMouse);
    // 进入glut事件循环
    glutMainLoop();

    return 0;
}

最后

以上就是暴躁钥匙为你收集整理的图形学课程01的全部内容,希望文章能够帮你解决图形学课程01所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部