zoukankan      html  css  js  c++  java
  • 实验三 OpenGL几何变换

    一、实验目的和要求
    1. 理解掌握一个OpenGL程序平移、旋转、缩放变换的方法。
    二、实验内容及主要步骤代码
    (1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移、旋转、缩放变换的方法;
    (2)根据示范代码,尝试完成实验作业;
    (3)形成以下图形,如下图所示。
    主要步骤代码:
    (1)示范实验源代码
    voiddrawSquare(void){
        glBegin(GL_POLYGON);
        glVertex2f(-1.0f,-1.0f);
        glVertex2f(1.0f,-1.0f);
        glVertex2f(1.0f,1.0f);
        glVertex2f(-1.0f,1.0f);
        glEnd();
    }
    void myDraw(void){
        glClear(GL_COLOR_BUFFER_BIT);
        glLoadIdentity();
        glPushMatrix();
        glTranslatef(0.0f,2.0f,0.0f);
        glScalef(3.0,0.5,1.0);
        glColor3f(1.0,0.0,0.0);
    drawSquare();
        glPopMatrix();
        glPushMatrix();
        glTranslatef(-3.0,0.0,0.0);
        glPushMatrix();
        glRotatef(45.0,0.0,0.0,1.0);
        glColor3f(0.0,1.0,0.0);
        drawSquare();
        glPopMatrix();
        glTranslatef(3.0,0.0,0.0);
        glPushMatrix();
        glRotatef(45.0,0.0,0.0,1.0);
        glColor3f(0.0,0.7,0.0);
        drawSquare();
        glPopMatrix();
        glTranslatef(3.0,0.0,0.0);
        glPushMatrix();
        glRotatef(45.0,0.0,0.0,1.0);
        glColor3f(0.0,0.4,0.0);
        drawSquare();
        glPopMatrix();
        glPopMatrix();  
        glTranslatef(0.0,-3.0,0.0);
        glScalef(4.0,1.5,1.0);
        glColor3f(0.0,0.0,1.0);
        drawSquare();
        glFlush();
    }
     
    三、实验作业
    1.根据示范程序,能否在示范代码基础上修改形成以下图形?如下图所示,写出主要的步骤和代码。(不需要将整个程序都写下来)
    答:
    (1)源代码:
    voiddrawDiamond(){
        glBegin(GL_POLYGON);
        glVertex2f(0.0f,0.0f);
        glVertex2f(1.0f,2.0f);
        glVertex2f(0.0f,4.0f);
        glVertex2f(-1.0f,2.0f);
        glEnd();
    }
    voidmyDisplay(){
        glClear(GL_COLOR_BUFFER_BIT);
        glLoadIdentity();
        glColor3f(1.0,0.0,0.0);
        drawDiamond();
        glRotatef(120.0,0.0,0.0,1.0);
        glColor3f(0.0,1.0,0.0);
        drawDiamond();
        glRotatef(120.0,0.0,0.0,1.0);
        glColor3f(0.0,0.0,1.0);
        drawDiamond();
        glFlush();
    }
    (2)运行结果:
  • 相关阅读:
    PowerDesigner16 破解
    双向链表的实现与操作(C语言实现)
    【HDOJ 2063】过山车
    gcc 源代码分析-前端篇2
    Android4.0.4-在build.prop中添加属性的方法【转】
    安卓系统手动添加虚拟按键教程【转】
    android 添加新的键值,自定义按键-2【转】
    android 添加新的键值,自定义按键【转】
    Android下添加新的自定义键值和按键处理流程【转】
    android监听虚拟按键的显示与隐藏【转】
  • 原文地址:https://www.cnblogs.com/mallocxw/p/8268809.html
Copyright © 2011-2022 走看看