2010-08-20 385 views
2

我使用http://www.compgeom.com/~piyush/scripts/triangle/中的三角形++包裝類對三維點雲進行三角剖分,以便用OpenGL進行視覺化。 我能夠把我的觀點和計算三角測量。之後,我還能夠訪問頂點迭代器上的頂點,它如何顯示在包中包含的main.cpp示例中。現在我想訪問面迭代器上的頂點(這也是main.cpp中的一個例子)。我想遍歷所有面並獲得每個面的三個頂點。有沒有人已經做到了?我一直試圖修改包裝類大約2天,但沒有成功。在三角形中訪問頂點++(delaunay/voronoi三角剖分)包裝類

非常感謝! 塞巴斯蒂安

+0

示例程序是否適合您?你的情況不一樣嗎?爲什麼你需要修改包裝? – 2010-08-20 16:24:29

回答

0

示例代碼工作,但不包含我想要的。我想要分別獲取所有三個頂點的一張臉,例如:

Delaunay :: fIterator fit = delobject.fbegin(); double x0 = fit.GetVertex(0).x(); y(y)= y(y)。 double z0 = fit.GetVertex(0).z(); double x1 = fit.GetVertex(1).x(); double y1 = fit.GetVertex(1).y(); double z1 = fit.GetVertex(1).z();

或類似的東西。當然,這些函數並不存在,但我甚至不知道如何訪問一般的混凝土面的頂點。

0

我得到了一個解決問題的辦法。只是爲了完整性,其工作原理是這樣的:

double x0 = delobject.point_at_vertex_id(delobject.Org(fit))[0]; 
double y0 = delobject.point_at_vertex_id(delobject.Org(fit))[1]; 
double x1 = delobject.point_at_vertex_id(delobject.Dest(fit))[0]; 
double y1 = delobject.point_at_vertex_id(delobject.Dest(fit))[1]; 
double x2 = delobject.point_at_vertex_id(delobject.Apex(fit))[0]; 
double y2 = delobject.point_at_vertex_id(delobject.Apex(fit))[1]; 
...