2012-02-15 129 views
1

我正在Python中编写一个简单的2d布朗运动模拟器。从分布中绘制x位移值和y位移值显然很容易,但我必须设置它以便从分布中绘制二维位移(即斜边),然后将其转换为新的x和y坐标。这可能是微不足道的,我只是远离三角学来记住如何正确地做到这一点。我是否需要为斜边生成一个值,然后将其转换为x和y位移,并使用sin和cos? (你如何正确地做到这一点?)2d随机游走蟒蛇 - 从分布图画斜边

回答

1

这是最好用极坐标(r, theta)为您做的分布(其中r是你的“弦”)),然后将结果转换为(x, y),使用x = r cos(theta)y = r sin(theta)。也就是说,从您喜欢的任何分布中选择r,然后选择一个theta,通常从平面0到360度分布,然后将这些值转换为xy

以相反的方式(即构造给定方向无关的斜边的相关(x,y)分布)将是非常困难的。

0

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

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