如何计算两个长方体面接触的面积?

时间:2019-04-12 18:03:24

标签: 3d contacts area

我正在为长方体项目设计3D打包算法,为了正确调整它,我需要能够计算出两个立方体相互接触时所创建的面积。 我的意思是说,我希望能够计算出这两个立方体相互接触的“连接区域”,或者换句话说,这两个长方体彼此接触的区域。

一个怪异物品由其定义:

  • 尺寸:整数宽度,整数高度,整数深度

  • startingPosition:int x,int y,int z

您可以假定该系统内部没有任何循环,并且所有变量都是整数。

在计算此面积方面的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这取决于语言,而您使用的语言也取决于长方体的起源。假设它在一个角上,可以说左下角是原点,这将允许我们沿轴添加。

让我们将cube1s x,y,z放在cube1_pos和cube1_pos2的相对角上,这也设置了大小。同样适用于多维数据集2

cube1_pos = [x,y,z];
cube1_pos2 = [x_s,y_s,z_s];
cube2_pos = [x2,y2,z2];
cube2_pos2 = [x2_s,y2_s,z2_s];

然后我们可以查看cube1_pos和cube1_pos2之间的所有点的实例,并查看cube2是否在这些点中的任何一个中。这可以用于体积,但是由于对象彼此无法进入,因此将找到区域。

您只需检查它们是否在范围上发生冲突,然后将它们相减并获得每个属性的绝对值,然后将它们相乘即可。如果您要求,我可以详细介绍。