我自己按照网上的结构编写的,但是还是不能够吧图正确画出来
struct Head
{
char fileName[80];
int faceNum;
};
//点,三个float类型的,大小为12字节
struct Point
{
double x;
double y;
double z;
};
//法线
struct Normal
{
double i;
double j;
double k;
};
//三角面,由一个法线,三个点,和一个两字节的保留项,一共50字节
struct Face
{
Normal normal;
Point p11;
Point p22;
Point p33;
char info[2];
};
Head head;
printf("请输入零件名:");
gets_s(head.fileName);
head.faceNum = O * 2;
Face face[O * 2];
int q = 0;
for (int i = 0; i <O; i++)//根据stl格式,将数据点归类
{
for (int j = 0; j < 2; j++)
{
face[q].normal = { norm[i][j][0], norm[i][j][1], norm[i][j][2] };
face[q].p11 = { p1[i][j][0], p1[i][j][1], p1[i][j][2] } ;
face[q].p22 = { p2[i][j][0], p2[i][j][1], p2[i][j][2] };
face[q].p33 = { p3[i][j][0], p3[i][j][1], p3[i][j][2] };
face[q].info[0] = 0;
face[q].info[1] = 0;
q++;
}
}
FILE *fp1;
errno_t err;
err = fopen_s(&fp1, "myStl.stl", "wb");
if (err == 0)
{
fwrite(&head, 84, 1, fp1);
for (int i = 0; i < (O * 2); i++)
{
fwrite(&face[i], 50, 1, fp1);
}
printf("生成文件成功!");
fclose(fp1);
}
else
{
printf("无法创建文件");
}