计算机图形学(1)

利用视口绘制在同一个窗口中绘制四个几何图形:

#include <windows.h>
#include <GL/glut.h>
#include <math.h>

void Viewport(int x,int y,int w,int h){
    glViewport(x,y,w,h); //定义视口
    glLoadIdentity(); //消除其他视口缓存
}

void Paint(){
    //计算视区大小及位置
    int w = glutGet(GLUT_WINDOW_WIDTH) / 2; //程序窗口宽度 / 2
    int h = glutGet(GLUT_WINDOW_HEIGHT) / 2; //程序窗口高度 / 2
    glClearColor(1,1,1,1); //白色背景
    glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓存

    Viewport(0,0,w,h); //左下视口
    glColor3f(0.8,0.8,0.3); //设置正方形颜色
    glRectf(-0.8,-0.8,0.8,0.8); //定义正方形

    Viewport(w,0,w,h); //右下视口
    glColor3f(0.2,0.2,0.3); //球体颜色
    glRotatef(-90,1,0,0); //调整两极方向
    glutWireSphere(0.8,24,12);//线框球体

    Viewport(0,h,w,h); //左上
    glRotatef(30,1,1,0); //调整立体方向
    glutWireCube(1); //线框立方体,边长为1

    Viewport(w,h,w,h); //右上
    glColor3f(0.8,0.5,0.8); //颜色
    glutSolidTeapot(0.6); //定义犹他茶壶

    glFlush(); //强制OPENGL命令序列在有限时间内完成执行
}
int main(int argc, char* argv[]){
    glutInit(&argc, argv); //初始化
    //设置程序窗口的显示模式(单缓存,RGBA颜色模式,默认值)

    //glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowPosition(100,100); //设置程序窗口在屏幕上的位置
    glutInitWindowSize(300,300); //设置程序窗口的大小
    glutCreateWindow("四个几何图形"); //设置窗口标题
    glutDisplayFunc(Paint); //指定场景绘制循环函数,必须
    glutMainLoop(); //开始循环执行OpenGL命令
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇