球体与墙体碰撞时的变形

时间:2014-11-27 15:31:54

标签: data-structures graphics 3d computational-geometry

我制作了一个带有正方形的球体(用方块填充)。为此我带了3个乐队,每个乐队由8个点组成。总共24分。现在我必须在与墙壁碰撞时使球体变形。为此,我将所有点存储在树数据结构中。现在我将在球转换时遍历树,并将增加点的坐标(例如,1个单位)。当碰撞点与树中的任何节点匹配时,则检测到碰撞。但是为了使球体变形,我需要检查其8个邻居并找出已经压缩了多少区域。但是如何找到球体中的点将减少(压缩)的距离以及相邻点将被压缩多少。我怎么知道节点中的哪些点被认为是他们的邻居?我认为邻居应该是碰撞节点的孩子。但是如何找到压缩的区域?那个地区有什么意义?一个节点在我的树中有多少个孩子?请给我一些数学公式或程序来做这件事。

1 个答案:

答案 0 :(得分:1)

希望你写的是关于固体材料......

  1. 您需要了解此背后的数学/物理背景

    你需要知道积分和向量数学,所以谷歌的材料力学类似于this ...首先用我的语言命中。对不起,我没有信心用英语进行搜索,但是如果你找到类似图纸的材料......

    您需要寻找的最重要的事情是:

    • 胡克定律
    • 弹性模量
    • 张力
    • 压缩

  2. 在这里查看vocabulary of terminology
  3. 可能是sphere-oid的Surface / Voxel地图将是一个更简单的选择

    至少在计算过程中,您可以通过曲面点树打包/解包。您将需要表面法线并通过其切片整合球体

  4. 您需要编译所需的所有数据

    • 材料常数
    • 处理各向同性/各向异性
  5. 联络时
  6. 将每个时间帧处理为静态。计算实际接触力(将实际动能转换为反作用力),然后计算接触切片的新形状。将变形分布添加到非接触切片。消除动能产生的能量耗散并在下一个时间框架内完成

    example

    别忘了墙也会变形!!!所以接触区并不总是平坦的!

  7. <强> [注释]

    很抱歉很长而不是确切的答案,但这不能通过简单的公式解决。你需要通过区域积分+滑动状态条件拟合

    来做到这一点