资源简介
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\li
文件 9128 2015-05-20 13:44 视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\li
文件 1854 2015-05-20 13:44 视口变换\1.视口变换(1)\Debug\1.视口变换(1).tlog\li
文件 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个文件信息
评论
共有 条评论