3Dポイントで満たされたファイルがあります。ポイントは平面を形成します。サンプルファイルは次のとおりです。
25
1 -1 0
1 -0.5 0
1 0 0
1 0.5 0
1 1 0
0.5 -1 0
0.5 -0.5 0
0.5 0 0
0.5 0.5 0
0.5 1 0
0 -1 0
0 -0.5 0
0 0 0
0 0.5 0
0 1 0
-0.5 -1 0
-0.5 -0.5 0
-0.5 0 0
-0.5 0.5 0
-0.5 1 0
-1 -1 0
-1 -0.5 0
-1 0 0
-1 0.5 0
-1 1 0
編集:私の例のポイントセットは単純すぎたので、ここにもっと複雑な例があります。
30
-0.298858 -0.816497 1.11536
0.0546949 -0.816497 0.761802
0.408248 -0.816497 0.408248
0.761802 -0.816497 0.0546949
1.11536 -0.816497 -0.298858
-0.462158 -0.489898 0.952056
-0.108604 -0.489898 0.598502
0.244949 -0.489898 0.244949
0.598502 -0.489898 -0.108604
0.952056 -0.489898 -0.462158
-0.625457 -0.163299 0.788756
-0.271904 -0.163299 0.435203
0.0816497 -0.163299 0.0816497
0.435203 -0.163299 -0.271904
0.788756 -0.163299 -0.625457
-0.788756 0.163299 0.625457
-0.435203 0.163299 0.271904
-0.0816497 0.163299 -0.0816497
0.271904 0.163299 -0.435203
0.625457 0.163299 -0.788756
-0.952056 0.489898 0.462158
-0.598502 0.489898 0.108604
-0.244949 0.489898 -0.244949
0.108604 0.489898 -0.598502
0.462158 0.489898 -0.952056
-1.11536 0.816497 0.298858
-0.761802 0.816497 -0.0546949
-0.408248 0.816497 -0.408248
-0.0546949 0.816497 -0.761802
0.298858 0.816497 -1.11536
これらのポイントは次のようにプロットされます。
このファイルは、平面に25のポイントがあることを示し、ポイントをリストします。ポイントは一定の間隔で配置されます。この情報に基づいて、ポイントデータから三角形を形成し、それを次のstd::vector<Tri>
場所に格納するにTri
はどうすればよいですか。
struct Tri
{
double x1, y1, z1;
double x2, y2, z2;
double x3, y3, z3;
};
注:問題の制限:外部ライブラリーは許可されていません。C ++ 0Xの使用は許可されていません(コンパイラ:g ++ 4.5.2)。