【问题标题】:How can I calculate the area in which two cuboids faces make contact?如何计算两个长方体面接触的面积?
【发布时间】:2019-04-12 18:03:24
【问题描述】:

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

立方体项目由其定义:

  • 尺寸:int 宽度、int 高度、int 深度

  • 起始位置:int x,int y,int z

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

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

【问题讨论】:

    标签: 3d contacts area


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2021-10-21
      • 2021-08-15
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多