【问题标题】:Volume of Complex objects复杂物体的体积
【发布时间】:2011-08-07 01:38:33
【问题描述】:

如何根据矢量积计算复杂物体的体积。我有构建对象网格的三角形列表。

我有一个:

  • 三角形列表。
  • 一个三角形由 3 个节点组成。
  • 节点具有 x、y 和 z 坐标。

【问题讨论】:

  • ;-) 将对象完全浸入容器中,该容器具有垂直壁、规则底座(因为这简化了计算)并且部分装满了水;通过测量水位的差异,一个时髦形状物体的体积计算映射到一个简单的固体的体积。 ;-)

标签: c# algorithm geometry


【解决方案1】:

您可以选择一个点 P(例如,原点),然后计算所有四面体 PABC 的体积,其中 A、B 和 C 是列表中三角形的顶点。每个这样的四面体的体积等于 abs(((PA x PB) . PC) / 2),其中“x”和“.”分别是叉积和点积,abs 是绝对值。要计算整个对象的体积,您可以将所有体积相加,但不取每个体积的绝对值。因此,一些四面体的体积将在总和中加上加号,而有些则用减号。因此,整个对象的体积将为 abs(sum(((PAi x PBi) . PCi) / 2)),其中 Ai、Bi、Ci 是第 i 个三角形的顶点,所有 i 都取和。

【讨论】:

  • 这对非凸物体有效吗?只是问,我不知道。
  • 更多细节:所有三角形的 a、b、c 顺序必须一致——从对象外部看时顺时针或逆时针。
猜你喜欢
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 2012-07-22
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多