Python中二维随机游走 - 从分布绘制斜边

1 投票
2 回答
1079 浏览
提问于 2025-04-17 13:05

我正在用Python写一个简单的二维布朗运动模拟器。显然,从一个分布中抽取x轴和y轴的位移值是很简单的,但我需要设置一个机制,让二维位移(也就是斜边)也是从一个分布中抽取的,然后再把这个值转换成新的x和y坐标。这可能很简单,但我对三角函数有点生疏,记不清怎么正确地做了。我是不是需要先生成一个斜边的值,然后用正弦和余弦把它转换成x和y的位移?(怎么才能正确做到这一点呢?)

2 个回答

0

如果你有一个斜边,它是一个线段,那你就有两个点。比如说这两个点是 P0 = (x0, y0)P1 = (x1, y1)。你可以通过把 x0x1 中减去,和把 y0y1 中减去,来得到在x和y方向上的位移。

如果你的斜边实际上是在极坐标平面上的一个向量,那你就需要用到角度的 sin 值,乘以这个向量的大小,来得到y方向的位移;同样的,用 cos 来计算x方向的位移。

1

最好的方法是使用极坐标 (r, theta)来处理你的分布(这里的r可以理解为“斜边”),然后再把结果转换成(x, y)。具体来说,就是用x = r cos(theta)y = r sin(theta)来计算。也就是说,先从你喜欢的分布中选择一个r,然后再选择一个theta,通常是从0到360度的均匀分布中选,然后把这些值转换成xy

如果反过来做(也就是构建相关的(x, y)分布,使得斜边的方向不受影响)会非常困难。

撰写回答