最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

图形学 用OpenGL实现平移、旋转、缩放

来源:动视网 责编:小OO 时间:2025-10-01 02:01:19
文档

图形学 用OpenGL实现平移、旋转、缩放

石正坤一、实验目的:1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想;2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤;二、实验原理:在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能:glRotatef(theta,vx,vy,vz);glTranslatef(dx,dy,dz);glScalef(sx,sy,sz);三、实验内容://1.cpp:Definestheentrypointfortheconsoleappl
推荐度:
导读石正坤一、实验目的:1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想;2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤;二、实验原理:在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能:glRotatef(theta,vx,vy,vz);glTranslatef(dx,dy,dz);glScalef(sx,sy,sz);三、实验内容://1.cpp:Definestheentrypointfortheconsoleappl
石正坤

                                                                     

一、实验目的:

1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想;

2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤;

二、实验原理:

在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能:

glRotatef(theta, vx, vy, vz);

glTranslatef(dx, dy, dz);

glScalef(sx,sy,sz);

三、实验内容:

// 1.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "glut.h"

#include "math.h"

void  display()

{

    glClear( GL_COLOR_BUFFER_BIT);  // Clear the frame buffer

    glColor3f( 0.0, 1.0, 1.0);              // Set current color to green

    glBegin( GL_POLYGON);            // Draw the triangle

    glVertex2f( 0.0, -0.2);

    glVertex2f( 0.2, 0.0);

    glVertex2f( 0.0, 0.0);

      glEnd();

    glFlush();   

}

void dsp()

{

    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);  // Clear the frame buffer

      glColor3f( 0.0, 1.0, 1.0);   // Set current color to green

display();

    //-------------------------- //平移

    glPushMatrix();

    glTranslatef(0.5,0.5,0.0);

    display();

    glPopMatrix();

    //-------------------------- //缩放

    glPushMatrix();

    glScalef(0.5,0.5,0.0);

    display();

    glPopMatrix();

    //-------------------------- //旋转

    glPushMatrix();

    glRotatef(60,0.0,0.0,1.0);

    display();

    glPopMatrix(); 

}

void  init()  

{    

    glClearColor( 0.0, 0.0, 0.0, 0.0);   // Set the clear color to black

                                         // Specify the boundaries of the viewing window

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    gluOrtho2D(-1.0, 1.0, -1.0, 1.0);    // The para are: (left, right, bottom, top)

    glMatrixMode(GL_MODELVIEW);

}

int main(int argc, char* argv[])

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);

    glEnable(GL_DEPTH_TEST);

    glutCreateWindow("simple");

    glutDisplayFunc(dsp);

    init();

    glutMainLoop();

    return 0;

}

原图:

平移:

缩放:

旋转:

四、实验总结:

1.在分别查看图像的平移、缩放、旋转中的其中一个功能时,需要将其他两个的代码注释掉,否则只会显示旋转一个功能。

2.当使用函数glScalef( sx, sy, sz)对图形作缩放操作时,若sy为正值,则图形保持正立;而当sy为负值时,则图形就变成倒立像。

文档

图形学 用OpenGL实现平移、旋转、缩放

石正坤一、实验目的:1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想;2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤;二、实验原理:在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能:glRotatef(theta,vx,vy,vz);glTranslatef(dx,dy,dz);glScalef(sx,sy,sz);三、实验内容://1.cpp:Definestheentrypointfortheconsoleappl
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top