CodeForge QQ客服 CodeForge 400电话 客服电话 4006316121
首页 » 源代码 » Obj模型加载并显示 » OpenObjModel/OpenObjModel/main.cpp

OpenObjModel/OpenObjModel/main.cpp ( 文件浏览 )

文件源自:Obj模型加载并显示
  • 979395mmm 发布于2018-04-14
  • 浏览次数:0
  • 下载次数:0
  • 下载需 1 积分
  • 侵权举报
			#include <glut.h>
#include <glu.h>
#include <math.h>                                               
#include "ArcBall.h"     
#include <fstream>  
#include <vector> 
#include"char.h" 


//初始化,必须用全局变量的方式,不能用new
ArcBallT arcBall(600.0f, 400.0f);
ArcBallT*    ArcBall = &arcBall;// new ArcBallT(600.0f,400.0f);//&arcBall;


//相机位置  
static GLdouble viewer[] = {
 1, 0, 0 
};
//旋转角度  
static GLdouble theta[] = {
 0, 0, 0 
};
//顶点表  
vector<Vertex> vert;
//三角形信息表  
vector<Triangle> face;
//顶点个数  
int num_vertex = 0;
//三角形个数  
int num_triangle = 0;

//画三维模型  
void draw()
{

	glBegin(GL_TRIANGLES);
	glColor3f(1, 0, 0);
	for (int i = 0; i < num_triangle; i++)
	{

		int a = face[i].v1;
		int b = face[i].v2;
		int c = face[i].v3;
		glVertex3f(vert[a].x, vert[a].y, vert[a].z);
		glVertex3f(vert[b].x, vert[b].y, vert[b].z);
		glVertex3f(vert[c].x, vert[c].y, vert[c].z);
	
}
	glEnd();

}

void myReshap(int width, int height)
{

	glClearColor(1, 1, 1, 1);
	glViewport(0, 0, width, height);

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	glFrustum(-1, 1, -1, 1, 1.5, 20);

	/*if (width <= height)
		glFrustum(-1, 1, -1 * (GLfloat)height / (GLfloat)width, 1 * (GLfloat)height / (GLfloat)width, 1, 5);
	else
		glFrustum(-1 * (GLfloat)width / (GLfloat)height, 1 * (GLfloat)width / (GLfloat)height, -1, 1, 1, 5);*/

	glMatrixMode(GL_MODELVIEW);
	ArcBall->setBounds((GLfloat)width, (GLfloat)height);//1. 设置窗口边界

}

void init() {

	glClearColor(1, 1, 1, 1);
	glShadeModel(GL_FLAT);

}

void myDisplay()
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glColor3f(0, 1.0, 1.0);
	glLoadIdentity();
	gluLookAt(viewer[0], viewer[1], viewer[2], 0, 0, 0, 0, 1, 0);
    glScalef(1.0, 1.0, 1.0);

	/*glRotatef(theta[0], 1.0, 0.0, 0.0);
	glRotatef(theta[1], 0.0, 1.0, 0.0);
	glRotatef(theta[2], 0.0, 0.0, 1.0);*/
	//glPushMatrix();               
	glTranslatef(1, 0, 0);
	glScalef(ArcBall->zoomRate, ArcBall->zoomRate, ArcBall->zoomRate);//2. 缩放
	glMultMatrixf(ArcBall->Transform.M);                        //3. 旋转
	//glutWireCube(1.0);

	draw();
	glFlush();
	glutSwapBuffers();

}



void ReadObj() {


	ifstream File;
	const char *FileName;
	char DataBuffer[128];
	FileName = "flamingo.obj";
	File.open(FileName);


	if (File)
	{

		float tmp1, tmp2, tmp3;
		int t1, t2, t3;
		char tmp;

		//跳过文件第一行的注释信息
		File.getline(DataBuffer, 100);
		if (DataBuffer[0] != '#')
		{

			File.seekg(0, ios::beg);
		
}

		//读取点面信息
		while (!File.eof())
		{

			File >> tmp;
			//输入点信息
			if (tmp == 'v')
			{

				File >> tmp1;
				File >> tmp2;
				File >> tmp3;
				vert.push_back(Vertex(tmp1, tmp2, tmp3));
				num_vertex++;
			
}

			//输入三
...
...
(完整源码请下载查看)
			
...
展开> <收缩

下载源码到电脑,阅读使用更方便

1 积分

快速下载
还剩0行未阅读,继续阅读
云测速

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
...
名称 大小 修改日期
applicationhost.config82.95 kB2018-04-08 14:18
.suo41.50 kB2018-04-14 13:12
OpenObjModel.exe143.00 kB2018-04-14 13:08
OpenObjModel.ilk765.73 kB2018-04-14 13:08
OpenObjModel.pdb2.64 MB2018-04-14 13:08
ArcBall.h11.61 kB2018-04-14 13:11
char.h448.00 B2018-03-21 18:47
glew.h1.15 MB2018-04-10 17:20
glu.h15.99 kB2018-04-11 17:25
glut.h20.94 kB1998-08-18 16:24
objloader.h1.20 kB2018-04-13 11:43
stdafx.h1.03 kB2018-04-10 16:26
ArcBall.cpp4.59 kB2018-04-14 13:11
ArcBall.obj33.37 kB2018-04-14 13:08
GLRect.obj25.24 kB2018-04-13 10:55
main.obj398.39 kB2018-04-14 13:08
MousePoint.obj51.32 kB2018-04-13 10:56
MouseTri.obj148.68 kB2018-04-13 10:56
OpenObjModel.log204.00 B2018-04-14 13:08
CL.command.1.tlog7.30 kB2018-04-14 13:08
CL.read.1.tlog77.36 kB2018-04-14 13:08
CL.write.1.tlog3.79 kB2018-04-14 13:08
link.command.1.tlog3.23 kB2018-04-14 13:08
link.read.1.tlog3.13 kB2018-04-14 13:08
link.write.1.tlog458.00 B2018-04-14 13:08
OpenObjModel.lastbuildstate185.00 B2018-04-14 13:08
Render3Dbox.obj55.89 kB2018-04-13 11:14
vc140.idb923.00 kB2018-04-14 13:08
vc140.pdb524.00 kB2018-04-14 13:08
flamingo.obj263.26 kB2018-04-13 11:07
GLRect.cpp1.46 kB2018-04-13 10:45
main.cpp4.14 kB2018-04-14 13:11
MousePoint.cpp1.56 kB2018-04-13 10:49
MouseTri.cpp1.82 kB2018-04-13 10:49
OpenObjModel.vcxproj7.37 kB2018-04-14 13:06
OpenObjModel.vcxproj.filters1.01 kB2018-04-14 13:06
Render3Dbox.cpp2.59 kB2018-04-13 11:15
renderBall.cpp1.50 kB2018-04-13 10:49
shading.cpp1.68 kB2018-04-13 10:49
Simple.cpp387.00 B2018-04-13 10:49
vertexTest.cpp667.00 B2018-04-13 10:49
OpenObjModel.sln1.29 kB2018-04-14 13:12
OpenObjModel.VC.db54.55 MB2018-04-14 13:12
v140.00 B2018-04-13 10:36
OpenObjModel.tlog0.00 B2018-04-14 13:08
config0.00 B2018-04-13 11:06
OpenObjModel0.00 B2018-04-13 10:36
Debug0.00 B2018-04-14 13:08
.vs0.00 B2018-04-13 11:06
Debug0.00 B2018-04-14 13:06
include0.00 B2018-04-14 13:11
OpenObjModel0.00 B2018-04-14 13:11
OpenObjModel0.00 B2018-04-14 13:12
云测速

OpenObjModel/OpenObjModel/main.cpp (12.55 MB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足

支付宝优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取

您本次下载所消耗的积分将转交上传作者。

同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册
关注微博
联系客服

Switch to the English version?

Yes
CodeForge 英文版
No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的