用c语言比较三个数的大小:用 A、 B、 C三个点的坐标定义一个框(define box)

关于用c语言比较三个数的大小的问题,在define box中经常遇到, 提问定义一个名为 point3d 的新结构,该结构在 3D 平面坐标中包含三个成员{x,y,z}(均为浮点值)。定义一个名为 box 的新结构,该结构包含 3D 空间中的三个点 {A,B,C}。编写一个 C 程序,创建一个属于上述结构框的框(即 mybox)。定义给定的三个点 A,B 和 C 的坐标。

提问定义一个名为 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
0

您可以沿其中一个轴(例如Z轴)对齐BC边,然后找到需要计算宽度和高度的所有其他顶点,例如:D = (B.x, A.y, A.z)

0

您可以定义一个具有 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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(644)
验证码接口程序:django简单验证码一直说“无效验证码”
上一篇
程序员发展路线:更好的程序员路线图(better programming)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(38条)