我已经实现了verlet算法来模拟绳索。然而,如果我模拟一条有很多段的绳子,那么它会变得非常有弹性,最终会出现非常不自然的摆动。
当我使用较少的部分时,绳索的运动看起来更自然,但绳索本身看起来更像是连在一起的棍棒。
我可以做些什么来模拟一条不会摆动那么多(阻尼更高)的细绳?
答案 0 :(得分:0)
我认为你需要按顺序处理这些段,以便更接近锚定端的段在更远的段之前收缩,并且对于每个段,只有一个点可以移动(离锚点最远的点)。
对于仅锚定在一端的绳索非常简单,因为您可以从锚定端开始并沿着它移动。对于锚定在两端的绳索,我想你必须同时从每个末端开始并依次从每个末端处理一个段。在某些时候,你会到达一个处理过程的段,在这种情况下你可以呃......在两个点平均移动的情况下进行正常调整吗?
如果绳索在违反约束的状态下开始,我想在模拟开始的几帧中看起来有点奇怪,直到事情结束,但如果绳索的总长度限制为不再比允许的段(即非弹力绳)然后我认为那之后会好的(因为你在标签中有Box2D,你可以使用绳索关节来做到这一点。)
再想一想,这可能最终导致绳索中间的段比其他段长得多。但我会在这里留下答案,以防它给你提出想法。