91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

利用半邊結(jié)構(gòu)實現(xiàn)細分算法。讀入off文件,用半邊結(jié)構(gòu)存儲,不斷細分。

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?
#include?
#include?????????????
#include???
#include???
#include?
#include?
#include?????????????
#include???

using?namespace?std;

typedef?struct?HE_vert?//點
{
float?x;
float?y;
float?z;?//點的坐標

struct?HE_edge??*edge;??//?半邊??
}HE_vert;

typedef?struct?HE_edge
{
struct?HE_vert?*vert;???//?vertex?at?the?end?of?the?half-edge??
struct?HE_edge?*pair;???//?oppositely?oriented?adjacent?half-edge???
struct?HE_face?*face;???//?face?the?half-edge?borders??
struct?HE_edge?*next;???//?next?half-edge?around?the?face??
}HE_edge;

typedef?struct?HE_face
{
struct?HE_edge?*edge;??//?one?of?the?half-edges?bordering?the?face??
struct?HE_vert?*normal;
}HE_face;

vector*?vertices;
vector*?faces;
vector*?halfEdges;

//鼠標交互有關(guān)的
int?mousetate?=?0;?//鼠標當前的狀態(tài)
GLfloat?Oldx?=?0.0f;?//?點擊之前的位置
GLfloat?Oldy?=?0.0f;
//與實現(xiàn)角度大小相關(guān)的參數(shù),只需要兩個就可以完成
float?xRotate?=?0.0f;
float?yRotate?=?0.0f;
float?ty?=?0.0f;
float?scale?=?1;
GLfloat?f1?f2?f3?f4?f5;
int?vertexnum?facenum?edgenum;//點數(shù)、面數(shù)、邊數(shù)

const?string?file_1?=?“cube.off“;
const?string?file_2?=?“cone.off“;
const?string?file_3?=?“Geometry/dinosaur.off“;
int?currentfile?=?1;

GLuint?showFaceList?showWireList;
int?showstate?=?1;
bool?showFace?=?true;
bool?showWire?=?false;
bool?showFlatlines?=?false;

//初始化頂點和面???
void?initGL()
{
glClearColor(0.0?0.0?0.0?0.0);
glClearDepth(2.0);
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);?//用來開啟深度緩沖區(qū)的功能,啟動后OPengl就可以跟蹤Z軸上的像素,那么它只有在前面沒有東西的情況下才會繪制這個像素,在繪制3d時,最好啟用,視覺效果會比較真實
//?-------------------?Lighting??
glEnable(GL_LIGHTING);?//?如果enbale那么就使用當前的光照參數(shù)去推導(dǎo)頂點的顏色
glEnable(GL_LIGHT0);?//第一個光源,而GL_LIGHT1表示第二個光源
//?-------------------?Display?List??
showFaceList?=?glGenLists(1);
showWireList?=?glGenLists(1);

//?繪制?wire?
glNewList(showWireList?GL_COMPILE);
glDisable(GL_LIGHTING);
glLineWidth(1.0f);
glColor3f(0.5f?0.5f?0.5f);
glBegin(GL_LINES);
for?(vector::iterator?iter?=?halfEdges->begin();?iter?!=?halfEdges->end();?iter++)?{
//鏈接這個有向邊的起點和終點繪制網(wǎng)格
glVertex3f((*iter)->vert->x?(*iter)->vert->y?(*iter)->vert->z);
glVertex3f((*iter)->pair->vert->x?(*iter)->pair->vert->y?(*iter)->pair->vert->z);
}
glEnd();
glEnable(GL_LIGHTING);
glEndList();

//?繪制面
glNewList(showFaceList?GL_COMPILE);
for?(vector::iterator?iter?=?faces->begin();?iter?!=?faces->end();?iter++)?{
glBegin(GL_POLYGON);
glNormal3f((*iter)->normal->x?(*iter)->normal->y?(*iter)->normal->z);
glVertex3f((*iter)->edge->vert->x?(*iter)->edge->vert->y?(*iter)->edge->vert->z);
glVertex3f((*iter)->edge->next->vert->x?(*iter)->edge->next->vert->y?(*iter)->edge->next->vert->z);
glVertex3f((*iter)->edge->next->next->vert->x?(*iter)->edge->next->next->vert->y?(*iter)->edge->next->next->vert->z);
glEnd();
}
glEndList();
cout?<<

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????302080??2018-05-17?10:19??halfEdge\Debug\halfEdge.exe

?????文件????2259996??2018-05-17?10:19??halfEdge\Debug\halfEdge.ilk

?????文件????4706304??2018-05-17?10:19??halfEdge\Debug\halfEdge.pdb

?????文件???????1058??2017-11-09?15:52??halfEdge\halfEdge\cone.off

?????文件????????321??2016-10-20?23:02??halfEdge\halfEdge\cube.off

?????文件???????1504??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.log

?????文件????1473206??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.obj

?????文件????1638400??2018-05-05?18:20??halfEdge\halfEdge\Debug\halfEdge.pch

?????文件???????1454??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\cl.command.1.tlog

?????文件??????23938??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\CL.read.1.tlog

?????文件???????1066??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\CL.write.1.tlog

?????文件????????166??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\halfEdge.lastbuildstate

?????文件???????1296??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\link.command.1.tlog

?????文件???????3050??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\link.read.1.tlog

?????文件????????564??2018-05-17?10:19??halfEdge\halfEdge\Debug\halfEdge.tlog\link.write.1.tlog

?????文件??????11000??2018-05-05?18:20??halfEdge\halfEdge\Debug\stdafx.obj

?????文件?????814080??2018-05-17?10:19??halfEdge\halfEdge\Debug\vc120.idb

?????文件?????749568??2018-05-17?10:19??halfEdge\halfEdge\Debug\vc120.pdb

?????文件????1511141??2018-04-02?16:31??halfEdge\halfEdge\Geometry\Arma.off

?????文件?????125981??2018-04-02?17:17??halfEdge\halfEdge\Geometry\block.off

?????文件???????1294??2001-11-23?22:45??halfEdge\halfEdge\Geometry\boxcube.off

?????文件????????678??2001-11-12?19:09??halfEdge\halfEdge\Geometry\boxtorus.off

?????文件????4368708??2018-04-02?17:18??halfEdge\halfEdge\Geometry\Buddha.off

?????文件????2535115??2018-04-20?18:52??halfEdge\halfEdge\Geometry\bunny.off

?????文件???????1058??2017-11-09?15:52??halfEdge\halfEdge\Geometry\cone.off

?????文件????????135??2001-11-10?11:12??halfEdge\halfEdge\Geometry\cube.off

?????文件????????583??1997-04-02?22:38??halfEdge\halfEdge\Geometry\cuboctahedron.off

?????文件?????118809??2018-04-02?17:19??halfEdge\halfEdge\Geometry\dinosaur.off

?????文件????????821??1992-06-26?05:08??halfEdge\halfEdge\Geometry\dodecahedron.off

?????文件????7433104??2018-04-02?17:16??halfEdge\halfEdge\Geometry\dragon.off

............此處省略35個文件信息

評論

共有 條評論