クラス三角形の 3 つのオブジェクトの 2 番目と 3 番目のコーナーの値を設定しようとしています。明示的に行うと、次のようになります。
triangle_mesh[0].set_vector_point2(vector_anchors[1]);
triangle_mesh[1].set_vector_point3(vector_anchors[1]);
triangle_mesh[1].set_vector_point2(vector_anchors[2]);
triangle_mesh[2].set_vector_point3(vector_anchors[2]);
triangle_mesh[2].set_vector_point2(vector_anchors[3]);
triangle_mesh[0].set_vector_point3(vector_anchors[3]);
そしてこれはうまくいきます!これらの三角形を印刷すると、次のようになります(最初のコーナーはすでに設定されています-これは問題ではありません):
triangle0 is ( 0, 0, -1) (1, 0, 0) (-0.5, -0.866025, 0)
triangle1 is ( 0, 0, -1) (-0.5, 0.866025, 0) (1, 0, 0)
triangle2 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, 0.866025, 0)
第一に、しかし、これは醜く、第二に、設定する三角形が 3 つ以上ある場合に一般化する必要があります。これに対する私のコードは次のとおりです。
for (int longitude = 0; longitude < num_longitudes; longitude++){
SurfaceVector current_anchor = vector_anchors[1 + longitude];
triangle_mesh[longitude].set_vector_point2(current_anchor);
triangle_mesh[(longitude + 1) % num_longitudes].set_vector_point3(current_anchor);
}
*nb num_longitudes は 3*
考えられるすべてをチェックしましたが、三角形を印刷すると次のようになります。
triangle0 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
triangle1 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
triangle2 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
何がうまくいかないのか誰にも分かりませんか?!
編集
三角形の vector_point 変数はポインターであり、次のように設定されます。
void set_vector_point1(SurfaceVector vector_point) { vector_point1 = &vector_point; }