2

http://www.compgeom.com/~piyush/scripts/triangle/の三角形 ++ ラッパー クラスを使用して、OpenGL で視覚化するための点群を三角測量しています。ポイントを入力して三角測量を計算することができました。その後、頂点イテレータを介して頂点にアクセスすることもできました。これは、パッケージに含まれている main.cpp の例に示されています。今、私は顔の反復子 (main.cpp にも例があります) を介して頂点にアクセスしたいと考えています。すべての面を反復処理して、すべての面の 3 つの頂点を取得したいと考えています。誰かがすでにそれをしましたか?私はラッパークラスを変更しようとしましたが、すでに 2 日ほど成功していません。

事前にどうもありがとう!セバスチャン

4

2 に答える 2

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];
...
于 2010-08-24T10:33:21.247 に答える
0

サンプル コードは機能しますが、必要なものが含まれていません。たとえば、1 つの面を取り、3 つの頂点すべてを個別に取得したいとします。

Delaunay::fIterator fit = delobject.fbegin(); double x0 = fit.GetVertex(0).x(); double y0 = fit.GetVertex(0).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();

またはそのようなもの。もちろん、これらの関数は存在しませんが、具体的な面の頂点に一般的にアクセスする方法さえ知りません。

于 2010-08-20T19:34:15.587 に答える