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

问题描述 投票:0回答:1

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

一个cubid项目由以下定义:

  • dimensions:int width,int height,int depth
  • startingPosition:int x,int y,int z

您可以假设此系统内部没有任何旋转,并且所有变量都是整数。

任何帮助计算这个领域将非常感激。

3d contacts area
1个回答
0
投票

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

让我们将cube1s x,y,z放在cube1_pos和cube1_pos2中作为对角,这也设置了大小。 cube2也是如此

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是否在任何这些点中。这可以用于卷,但由于对象不能相互进入,它会找到区域。

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

© www.soinside.com 2019 - 2024. All rights reserved.