zoukankan      html  css  js  c++  java
  • 用OpenGL绘制图形

    用OpenGL绘制图形

    结果

    clip_image002

    代码
    /*
    * File: main.c
    * Author: leo
    *
    * Drawing a simple 3D rectangle program with GLUT
    * OpenGL ~~
    */
     
    #include <stdio.h>
     
    #include <stdlib.h>
     
    #include <GL/gl.h>
     
    #include <GL/glu.h>
     
    #include <GL/glut.h>
     
    //called to draw scene
     
    void RenderScene(void)
     
    {
     
    //clear the window with current clearing color
     
    glClear(GL_COLOR_BUFFER_BIT);
     
    //set current drawing color to read
     
    glColor3f(1.0f,0.0f,0.0f); //设置以后绘制操作所用的颜色
     
    //draw a filled rectangle with current color
     
    glRectf(100.f,150.0f,150.0f,100.0f); //绘制一个填充的矩形
     
    //flush drawing commands
     
    glFlush();
     
    }
     
    //set up the rendering state
     
    void SetupRC(void)
     
    {
     
    glClearColor(0.0f,0.0f,1.0f,1.0f);
     
    }
     
    //called by GLUT library when the window has changed size
     
    void ChangeSize(GLsizei w, GLsizei h)
     
    {
     
    //prevent a divide by zero
     
    if(h == 0)
     
    h = 1;
     
    //set viewport to window dimensions
     
    glViewport(0,0,w,h);
     
    //reset coordinate system
     
    glMatrixMode(GL_PROJECTION);
     
    glLoadIdentity();//在每次进行任何矩阵处理之前都“复位”坐标系
     
    //establish clipping volumn(left,right,bottom,top,near,far)
     
    if(w <= h)
     
    glOrtho(0.0f,250.0f,0.0f,250.0f*h/w,1.0,-1.0);
     
    else
     
    glOrtho(0.0f,250.0f*w/h,0.0f,250.0f,1.0,-1.0);
     
    glMatrixMode(GL_MODELVIEW);
     
    glLoadIdentity();
     
    }
     
    int main(int argc, char** argv) {
     
    glutInit(&argc,argv);
     
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
     
    glutCreateWindow("Plot Rect. using GLUT");
     
    glutDisplayFunc(RenderScene);
     
    glutReshapeFunc(ChangeSize);//窗口大小发生变化,就重新设置坐标系
     
    SetupRC();
     
    glutMainLoop();
     
    return (EXIT_SUCCESS);
     
    }
  • 相关阅读:
    一些不能订阅的前端学习资源
    酷站收集
    网页设计学习资源
    flash 内置类的位置
    打造自己的CodeSnippet (转)
    (转)打造自己的CodeSnippet
    WebApplication编程模型与WebSite编程模型
    (转).net面试问答(大汇总)
    ASP.NET 防盗链源码 (转)
    正则表达式基础知识
  • 原文地址:https://www.cnblogs.com/shaoguangleo/p/2805977.html
Copyright © 2011-2022 走看看