Python中二维随机游走 - 从分布绘制斜边
我正在用Python写一个简单的二维布朗运动模拟器。显然,从一个分布中抽取x轴和y轴的位移值是很简单的,但我需要设置一个机制,让二维位移(也就是斜边)也是从一个分布中抽取的,然后再把这个值转换成新的x和y坐标。这可能很简单,但我对三角函数有点生疏,记不清怎么正确地做了。我是不是需要先生成一个斜边的值,然后用正弦和余弦把它转换成x和y的位移?(怎么才能正确做到这一点呢?)
2 个回答
0
如果你有一个斜边,它是一个线段,那你就有两个点。比如说这两个点是 P0 = (x0, y0)
和 P1 = (x1, y1)
。你可以通过把 x0
从 x1
中减去,和把 y0
从 y1
中减去,来得到在x和y方向上的位移。
如果你的斜边实际上是在极坐标平面上的一个向量,那你就需要用到角度的 sin
值,乘以这个向量的大小,来得到y方向的位移;同样的,用 cos
来计算x方向的位移。
1
最好的方法是使用极坐标 (r, theta)
来处理你的分布(这里的r
可以理解为“斜边”),然后再把结果转换成(x, y)
。具体来说,就是用x = r cos(theta)
和y = r sin(theta)
来计算。也就是说,先从你喜欢的分布中选择一个r
,然后再选择一个theta
,通常是从0到360度的均匀分布中选,然后把这些值转换成x
和y
。
如果反过来做(也就是构建相关的(x, y)
分布,使得斜边的方向不受影响)会非常困难。