试图模拟从波罐壁界定的一维波

问题描述 投票:-2回答:1

我已经阅读了答案

试图模拟一维波并发现代码有用。

Trying to simulate a 1-dimensional wave

我正在制作一个有船和波浪的视频游戏,波浪需要从船的垂直侧面和一个终点反弹。当我看到波在到达边界点时总是反转,我希望脉冲在没有反转的情况下反弹。物理串模型将是连接到环上的质量串,该环在其反射的边界上滑动杆,而不是在一个点处固定,在这种情况下波反转。

笔记。这里描述了一种超级简单且更快速的方法。它只有一行代码和一个循环,非常逼真。

http://users.softlab.ece.ntua.gr/~ttsiod/wavePhysics.html# fn + 1(i)= 0.99(fn(i-1)+ fn(i + 1)-fn-1(i))

更重要的是,我无法设置边界条件,使得波在没有反转的情况下从端点反弹。

我能做的最好的事情就是将最后一个bin设置为它左边的一个bin,意思是自由端的vel = 0,但是wave只是结束而不会像我希望的那样反转。 _resultWave [_binCount - 1] = _currentWave [_binCount - 2];

有人想出来吗?我会回到Trying to simulate a 1-dimensional wave更复杂的解决方案

如果我知道如何应用边界条件,因为我还需要调整K并且不会在超简单方程中看到如何做到这一点。

matlab animation physics waveform boundary
1个回答
0
投票

测试了这个调整。我们只需要在右侧完全跳过力,但是在弹跳右侧边界处增加传播位移左侧的力。

  if (i == _binCount - 2)    //how to make a reflecting wave on the right side of the buffer
                    {
                        acc = K * (_previousWave[i - 1] - _previousWave[i]);    
                    }

这是使用“试图模拟一维波浪”中给出的第一个答案,改为c#。

© www.soinside.com 2019 - 2024. All rights reserved.