資源簡介
Delaunay德羅內三角形剖分生成以及opengl顯示
Delaunay 三角網的優點是結構良好, 數據結構簡單, 數據冗余度小, 存儲效率高, 與不規則的地面特征和諧一致,可以表示線性特征和迭加任意形狀的區域邊界, 易于更新,可適應各種分布密度的數據等; 它的局限性是, 算法實現比較復雜和困難, 但現在已經有了較多成熟的實現算法。 Delaunay 三角網是Voronoi圖的伴生圖形, 它們兩個是被普遍接受和采用的分析研究區域離散數據的有力工具。它是通過連接具有公共頂點的三個V n多邊形的生長中心而生成的, 這個公共頂點就是形成的Delaunay三角形外接圓的圓心

代碼片段和文件信息
//?ConsoleApplication4.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?“stdafx.h“
#include??
#include?“delaunay.h“
#include?“windows.h“?//?for?time?statistics
std::vector>?outData;
void?init(void)
{
glClearColor(0.0?0.0?0.0?0.0);//設置背景顏色為黑色
glShadeModel(GL_SMOOTH);//設置為光滑明暗模式
}
void?myDisplay(void)
{
glEnable(GL_CULL_FACE);
glPolygonMode(GL_FRONT?GL_LINE);
glClear(GL_COLOR_BUFFER_BIT);//?將緩存清除為預先的設置值即黑色
//glTranslatef(0.8?0.0?0.0);//平移函數,暫時可以不用
//? glBegin(GL_TRIANGLES);//開始畫三角形
//? glColor3f(1.0?0.0?0.0);//設置第一個頂點為紅色
//? glVertex2f(-1.0?-1.0);//設置第一個頂點的坐標
//? glColor3f(0.0?1.0?0.0);//設置第二個頂點為綠色
//? glVertex2f(0.0?-1.0);//設置第二個頂點的坐標
//? glColor3f(0.0?0.0?1.0);//設置第三個頂點為藍色
//? glVertex2f(-0.5?1.0);//設置第三個頂點的坐標
//? glEnd();//三角形結束
glPushMatrix();
glScalef(100.0f?100.0f?100.0f);
glBegin(GL_TRIANGLES);//開始畫三角形
for?(auto?v:?outData)
{
glVertex2f(v.firstv.second);//設置第一個頂點的坐標
}
glEnd();
glPopMatrix();
glFlush();//強制OpenGL函數在有限時間內運行
}
void?myReshape(GLsizei?w?GLsizei?h)
{
glViewport(0?0?w?h);//設置視口
glMatrixMode(GL_PROJECTION);//指明當前矩陣為GL_PROJECTION
glLoadIdentity();//將當前矩陣置換為單位陣
//? if?(w?<=?h)
//? gluOrtho2D(-1.0?1.5?-1.5?1.5*(GLfloat)h?/?(GLfloat)w);//定義二維正視投影矩陣
//? else
gluOrtho2D(-w/2?w/2?-h/2?h/2);
glMatrixMode(GL_MODELVIEW);//指明當前矩陣為GL_MODELVIEW
}
int?main(int?argc?char?**?argv)
{
/*初始化*/
glutInit(&argc?argv);
glutInitDisplayMode(GLUT_SINGLE?|?GLUT_RGB);//單緩沖、RGB模式
glutInitWindowSize(800?600);
glutInitWindowPosition(200?200);
glutCreateWindow(“三角形“);//窗口標題
MESH?mesh;
double?last_time?this_time;
//int?ver_num;
//int?tri_num;
Input(“D:/搜狗高速下載/DelaunayTriangulation/DelaunayTriangulation/input_points.txt“?&mesh);
last_time?=?GetTickCount();
IncrementalDelaunay(&mesh);
//Sleep(1000);
this_time?=?GetTickCount();
printf(“Elapsed?Time?for?Incremental?Delaunay:?%lg?ms“?this_time?-?last_time);
Output(“output_triangles.txt“?&mesh?outData);
init();
/*繪制與顯示*/
glutReshapeFunc(myReshape);//窗口大小發生改變時采取的行為
glutDisplayFunc(myDisplay);//顯示繪制圖形
glutMainLoop();//循環
return(0);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????26112??2017-12-06?21:57??ConsoleApplication4\.vs\ConsoleApplication4\v14\.suo
?????文件???????2459??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.cpp
?????文件???????8154??2017-12-06?21:42??ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj
?????文件???????1326??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj.filters
?????文件???????2138??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\CL.command.1.tlog
?????文件??????27514??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\CL.read.1.tlog
?????文件???????2194??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\CL.write.1.tlog
?????文件????????247??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\ConsoleApplication4.lastbuildstate
?????文件???????1930??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\li
?????文件???????3776??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\li
?????文件???????1176??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleA.0947F331.tlog\li
?????文件????????331??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleApplication4.log
?????文件?????209674??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleApplication4.obj
?????文件????3473408??2017-12-06?21:42??ConsoleApplication4\ConsoleApplication4\Debug\ConsoleApplication4.pch
?????文件??????12382??2017-12-06?21:42??ConsoleApplication4\ConsoleApplication4\Debug\stdafx.obj
?????文件?????748544??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\vc140.idb
?????文件?????339968??2017-12-06?21:53??ConsoleApplication4\ConsoleApplication4\Debug\vc140.pdb
?????文件??????17827??2017-12-06?21:33??ConsoleApplication4\ConsoleApplication4\delaunay.h
?????文件?????169984??1998-08-18?16:25??ConsoleApplication4\ConsoleApplication4\glut32.dll
?????文件????????263??2017-12-06?21:57??ConsoleApplication4\ConsoleApplication4\output_triangles.txt
?????文件???????1594??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4\ReadMe.txt
?????文件????????223??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4\stdafx.cpp
?????文件????????234??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4\stdafx.h
?????文件????????240??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4\targetver.h
?????文件???????1339??2017-12-06?21:37??ConsoleApplication4\ConsoleApplication4.sln
?????文件???29573120??2017-12-06?21:57??ConsoleApplication4\ConsoleApplication4.VC.db
?????文件??????92672??2017-12-06?21:53??ConsoleApplication4\Debug\ConsoleApplication4.exe
?????文件?????828336??2017-12-06?21:53??ConsoleApplication4\Debug\ConsoleApplication4.ilk
?????文件????1462272??2017-12-06?21:53??ConsoleApplication4\Debug\ConsoleApplication4.pdb
?????文件????3407872??2017-12-06?21:42??ConsoleApplication4\ipch\CONSOLEAPPLICATION4-fd4eae8b\CONSOLEAPPLICATION4-82664867.ipch
............此處省略13個文件信息
評論
共有 條評論