2d随机漫步在python中 - 从分布中绘制斜边

时间:2012-02-15 16:57:27

标签: python random trigonometry hypotenuse

我正在用Python编写一个简单的2d布朗运动模拟器。显然很容易从分布中绘制x位移和y位移的值,但我必须将其设置为从分布中绘制2d位移(即斜边),然后将其转换为新的x和y坐标。这可能是微不足道的,我只是从三角学中删除太多,不记得如何正确地做到这一点。我是否需要为斜边生成一个值,然后将其转换为带有sin和cos的x和y位移? (你怎么做到这一点?)

2 个答案:

答案 0 :(得分:1)

最好将极坐标 (r, theta)用于您的发行版(其中r是您的“斜边”)),然后将结果转换为{{1 },使用(x, y)x = r cos(theta)。也就是说,从您喜欢的任何分布中选择y = r sin(theta),然后选择r,通常是从0到360度的平面分布,然后将这些值转换为theta和{ {1}}。

反过来说(即,构建给出方向独立斜边的相关(x,y)分布)将是非常困难的。

答案 1 :(得分:0)

如果你有一个斜线形式的斜边,那么你有两个点。从P0 = (x0, y0) P1 = (x1, y1)形式的两个点开始,您可以从x0x1y0减去y1来获得x和y位移。

如果您的斜边实际上是极坐标平面中的矢量,那么是的,您将必须取角度的sin并将其乘以矢量的大小以获得y位移,同样cos表示x位移。