65,210
社区成员
发帖
与我相关
我的任务
分享
void divide(double A[3], double B[3], double C[3], vector<double *> &vec)
{
double ab[3], ac[3], bc[3];
//线段ab的中点ab
ab[0] = (A[0] + B[0]) / 2;
ab[1] = (A[1] + B[1]) / 2;
ab[2] = (A[2] + B[2]) / 2;
//线段ac的中点ac
ac[0] = (A[0] + C[0]) / 2;
ac[1] = (A[1] + C[1]) / 2;
ac[2] = (A[2] + C[2]) / 2;
//线段bc的中点bc
bc[0] = (B[0] + C[0]) / 2;
bc[1] = (B[1] + C[1]) / 2;
bc[2] = (B[2] + C[2]) / 2;
//将四个面的坐标存入容器vec
vec.push_back(A);
vec.push_back(ab);
vec.push_back(ac);
vec.push_back(ab);
vec.push_back(B);
vec.push_back(bc);
vec.push_back(ab);
vec.push_back(ac);
vec.push_back(bc);
vec.push_back(ac);
vec.push_back(bc);
vec.push_back(C);
}
int main()
{
vector<double *> vec;
double dian1[3] = { 0, 0, 0 }, dian2[3] = { 0, 1, 0 }, dian3[3] = { 1, 0, 0 };
divide(dian1, dian2, dian3, vec);
cout << endl;
for (int i = 0; i != 12; i++)
for (int j = 0; j != 3; ++j)
cout << vec[i][j] << " ";
}