【问题标题】:Volume of a 3D closed mesh car object3D 封闭网格汽车对象的体积
【发布时间】:2010-11-27 11:41:25
【问题描述】:

我有一个 3D 封闭网格汽车对象,其表面组成 三角形。我想计算它的体积、体积中心和惯性张量。

你能帮我吗

问候。 乔治

【问题讨论】:

标签: volume surface mesh


【解决方案1】:

对于音量...

对于每个三角形面,查找其角点。叫他们 P、Q、R。
计算这个数量(我称之为“部分体积”)

pv =  PxQyRz + PyQzRx + PzQxRy - PxQzRy - PyQxRz - PzQyRx

将所有方面的这些加在一起并除以 6。

重要!从外部看,每个刻面的 P、Q、R 必须按顺时针方向排列。 (或者全部逆时针,只要它在所有方面都是一致的。)

如果网格有任何四边形,只需暂时幻化连接一对对角的对角线。这使它变成了两个三角形。

实际的计算改进:在使用 P、Q 和 R 进行数学运算之前,减去某个“中心”点 C 的坐标。这可以是质心、最小/最大 x、y 和 z 之间的中点,或者网格内部或附近的任何方便点。这有助于最大限度地减少截断错误,从而获得更准确的卷。

【讨论】:

    【解决方案2】:

    从数值的角度来看,您要实现的目标非常简单,可以简化为计算几个正交。维基百科将提供有关其背后数学的所需信息。

    如果您正在寻找开箱即用的体积计算,请查看this entry。 就惯性而言——形状是不够的,你还需要质量分布。

    【讨论】:

      【解决方案3】:

      好吧,这里提供的关于汽车的信息并不多 - 您应该能够将汽车分解成更简单的形状 - 您需要的近似程度越高 - 您可以将其分解成的形状就越简单。 (如果汽车以某种方式动态生成并且每次都完全不同,这可能会很困难......但我认为这种情况没有任何意义)。

      这应该有助于找到各种更简单形状的惯性张量:http://www.gamedev.net/community/forums/topic.asp?topic_id=57001,找到体积和诸如球体和立方体之类的东西是相当普遍的知识,所以我不会费心把它联系起来。

      【讨论】:

        【解决方案4】:

        我认为是阿基米德发现,如果你将汽车浸入一定体积的液体中,排出的液体将与汽车的体积相同。

        我不确定在这种情况下这会对您有什么帮助。在后台运行液体模拟并将网格浸入其中听起来有点过头了。虽然,我认为它确实有效,因此有资格作为(尽管有点无用)答案。 ;^)

        【讨论】:

        • 网格上有孔,所以你只需要测量制作网格的金属丝的体积;-)
        • nono... 他特别写道:我有一个 3D 封闭网格汽车对象,其表面由三角形组成。由于它是封闭的,它不会让液体进入;^)
        • 将网格导出到 DXF,使用 Z 打印机打印出汽车,浸入水中,然后将位移体积乘以模型的缩放比例。简单!
        猜你喜欢
        • 1970-01-01
        • 2016-11-07
        • 2021-06-18
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        相关资源
        最近更新 更多