提问定义一个名为 point 的新结构,该结构在 3D 平面坐标中包含三个成员{x,y,z}(均为浮点值)。定义一个名为 box 的新结构,该结构包含 3D 空间中的三个点 {A,B,C}。编写一个 C 程序,创建一个属于上述结构框的框(即 mybox)。定义给定的三个点 A,B 和 C 的坐标。
结构:
typedef struct{
float x;
float y;
float z;
}point;
typedef struct{
point A;
point B;
point C;
}box;
我正在使用点积来证明它是一个盒子。但是如何计算高度和宽度?(长度由向量的大小计算)
void main(){
box cord;
point line1,line2;
float pro1,pro2,pro3;
int value;
printf("Input coordinates A:");
scanf("%f %f %f",&cord.A.x,&cord.A.y,&cord.A.z);
printf("Input coordinates B:");
scanf("%f %f %f",&cord.B.x,&cord.B.y,&cord.B.z);
printf("Input coordinates C:");
scanf("%f %f %f",&cord.C.x,&cord.C.y,&cord.C.z);
line1.x=cord.B.x-cord.A.x;
line1.y=cord.B.y-cord.A.y;
line1.z=cord.B.z-cord.A.z;
line2.x=cord.B.x-cord.C.x;
line2.y=cord.B.y-cord.C.y;
line2.z=cord.B.z-cord.C.z;
pro1=line1.x*line2.x;
pro2=line1.y*line2.y;
pro3=line1.z*line2.z;
value=prove_thebox(pro1,pro2,pro3);
if(value!=-1) printf("This not a box");
else if(value==-1){
}
}
int prove_thebox(float x,float y,float z){
float sum;
sum=x+y+z;
if (sum==0) return -1;
}
float box_volume(float x, float y,float z){
}
enter image description here
您可以沿其中一个轴(例如Z
轴)对齐BC
边,然后找到需要计算宽度和高度的所有其他顶点,例如:D = (B.x, A.y, A.z)
您可以定义一个具有 3 个 coords(不是点)的框,其中一些假设类似,您可以定义一个只有 2 个 coords 的 recatangle(假设一个角落从 0,0 开始)。
因此,使用矩形作为一个例子,你可以定义它为 ex 为(2,3),这意味着它的角落有以下几点:(0,0),(2,0),(0,3),(2,3)。
对于具有 3 个坐标的框,可以说(2,3,4)可以得出以下角:
0,0,0
0,3,0
0,0,4
0,3,4
2,0,0
2,3,0
2,0,4
2,3,4
这个盒子的体积是2*3*4 = 24
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(38条)