gpt4 book ai didi

c - 通过三点A、B、C的坐标定义一个盒子

转载 作者:行者123 更新时间:2023-11-30 16:31:34 24 4
gpt4 key购买 nike

问题定义了一个名为point3d的新结构,它包含三个成员{x, y, z}(都是浮点型)值)在 3D 平面坐标中。定义一个名为 box 的新结构,其中包含 3D 空间中的三个点 {A, B, C}。编写一个 C 程序,创建一个属于上面结构 box 的盒子(即 mybox)。定义 A、B 和 C 三个点的坐标。程序应计算给定盒子的体积。

结构:

typedef struct{
float x;
float y;
float z;
}point3d;

typedef struct{
point3d A;
point3d B;
point3d C;
}box;

我正在使用点积来证明它是一个盒子。但是如何计算高度宽度呢? (长度由 vector 的大小计算)

void main(){
box cord;
point3d 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)

关于c - 通过三点A、B、C的坐标定义一个盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com