• 大小: 12.18MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-29
  • 语言: C/C++
  • 标签:

资源简介

OpenGL利用C语言做出4个不同的视口,每个视口中都有一个按不同方向旋转的带颜色的四棱锥,C语言代码完整,并标注完整注释,适合初学者参考学习。

资源截图

代码片段和文件信息

// 1.视口变换(1).cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“


int _tmain(int argc _TCHAR* argv[])
{
return 0;
}

// 1.视口变换.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“


#include
#include
#include

GLfloat  H = 600 W = 600;                 //设定窗口的宽和高的值
GLfloat angle = 0.0;
void init()                                //仅仅设置一次就行了
{
glClearColor(0.0 0.0 0.0 0.0);
glShadeModel(GL_SMOOTH);
}

void Lengzhui()
{
//金字塔底边
glBegin(GL_QUADS);

glColor3f(1.0f 0.0f 0.0f);            //红色
glVertex3f(0.8f -0.8f 0.8f);
glColor3f(0.0f 1.0f 0.0f);            //绿色
glVertex3f(-0.8f -0.8f 0.8f);
glColor3f(0.0f 0.0f 1.0f);            //蓝色
glVertex3f(0.8f -0.8f -0.8f);
glColor3f(1.0f 0.0f 1.0f);            //洋红
glVertex3f(-0.8f -0.8f -0.8f);
glEnd();

glBegin(GL_TRIANGLES);
// 三角形前侧面
glColor3f(1.0f 1.0f 0.0f);            //黄色
glVertex3f(0.0f 0.8f 0.0f);
glColor3f(0.0f 1.0f 0.0f);             //绿色
glVertex3f(-0.8f -0.8f 0.8f);
glColor3f(1.0f 0.0f 0.0f);             //红色
glVertex3f(0.8f -0.8f 0.8f);

// 三角形右侧面
glColor3f(1.0f 1.0f 0.0f);             //黄色
glVertex3f(0.0f 0.8f 0.0f);
glColor3f(1.0f 0.0f 0.0f);              //红色
glVertex3f(0.8f -0.8f 0.8f);
glColor3f(0.0f 0.0f 1.0f);              //蓝色
glVertex3f(0.8f -0.8f -0.8f);

// 三角形后侧面
glColor3f(1.0f 1.0f 0.0f);              //黄色
glVertex3f(0.0f 0.8f 0.0f);
glColor3f(0.0f 0.0f 1.0f);               //蓝色
glVertex3f(0.8f -0.8f -0.8f);
glColor3f(1.0f 0.0f 1.0f);               //洋红
glVertex3f(-0.8f -0.8f -0.8f);

// 三角形左侧面
glColor3f(1.0f 1.0f 0.0f);               //黄色
glVertex3f(0.0f 0.8f 0.0f);
glColor3f(1.0f 0.0f 1.0f);               //洋红
glVertex3f(-0.8f -0.8f -0.8f);
glColor3f(0.0f 1.0f 0.0f);               //绿色
glVertex3f(-0.8f -0.8f 0.8f);
glEnd();
}

void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);            //清除颜色缓冲区

//把视口分成4个小区域,这是分割线
glViewport(0 0 W H);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-W / 2 W / 2 -H / 2 H / 2);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin(GL_LINES);
glVertex2f(-W / 2 0.0);
glVertex2f(W / 2 0.0);
glVertex2f(0 H / 2);
glVertex2f(0 -H / 2);
glEnd();


//左下角
glViewport(0 0 W / 2 H / 2);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45 (GLfloat)W / (GLfloat)H 0.1 10);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制部分
glTranslatef(0 0 -5);
glRotatef(angle 1 0 0); //旋转
glScalef(1 1 1);
// gluLookAt(0.0 0.0 10.0 1.0 1.0 1.0 1.0 1.0 0.0);
//画图
Lengzhui();


//左上角
glViewport(0 H / 2 W / 2 H / 2);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45 (GLfloat)W / (GLfloat)H 0.1 10);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制
glTranslatef(0.0 0.0 -5.0);
glRotated(angle 0.0 1.0 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-05-20 13:44  视口变换\
     目录           0  2015-04-08 09:47  视口变换\1.视口变换(1)\
     文件    30081024  2015-05-20 13:45  视口变换\1.视口变换(1).sdf
     文件        1009  2015-04-07 16:36  视口变换\1.视口变换(1).sln
     文件       22016  2015-05-20 13:44  视口变换\1.视口变换(1).v12.suo
     文件        5375  2015-04-08 09:47  视口变换\1.视口变换(1)\1.视口变换(1).cpp
     文件        4562  2015-04-07 16:36  视口变换\1.视口变换(1)\1.视口变换(1).vcxproj
     文件        1328  2015-04-07 16:36  视口变换\1.视口变换(1)\1.视口变换(1).vcxproj.filters
     目录           0  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\
     文件         768  2015-04-08 09:45  视口变换\1.视口变换(1)\Debug\1.视口变换(1).Build.CppClean.log
     文件        4517  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).log
     文件       36522  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).obj
     文件     1900544  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).pch
     目录           0  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\
     文件         225  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\1.视口变换(1).lastbuildstate
     文件        4510  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\cl.command.1.tlog
     文件       34232  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\CL.read.1.tlog
     文件        3500  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\CL.write.1.tlog
     文件        4068  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\link.command.1.tlog
     文件        9128  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\link.read.1.tlog
     文件        1854  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\link.write.1.tlog
     文件       12264  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\stdafx.obj
     文件      445440  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\vc120.idb
     文件      184320  2015-05-20 13:44  视口变换\1.视口变换(1)\Debug\vc120.pdb
     文件        1608  2015-04-07 16:36  视口变换\1.视口变换(1)\ReadMe.txt
     文件         221  2015-04-07 16:36  视口变换\1.视口变换(1)\stdafx.cpp
     文件         234  2015-04-07 16:36  视口变换\1.视口变换(1)\stdafx.h
     文件         236  2015-04-07 16:36  视口变换\1.视口变换(1)\targetver.h
     目录           0  2015-04-08 09:46  视口变换\Debug\
     文件       40448  2015-05-20 13:44  视口变换\Debug\1.视口变换(1).exe
     文件      299324  2015-05-20 13:44  视口变换\Debug\1.视口变换(1).ilk
............此处省略10个文件信息

评论

共有 条评论

相关资源