我正在用Python编写一个简单的2d布朗运动模拟器。显然很容易从分布中绘制x位移和y位移的值,但我必须将其设置为从分布中绘制2d位移(即斜边),然后将其转换为新的x和y坐标。这可能是微不足道的,我只是从三角学中删除太多,不记得如何正确地做到这一点。我是否需要为斜边生成一个值,然后将其转换为带有sin和cos的x和y位移? (你怎么做到这一点?)
答案 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)
形式的两个点开始,您可以从x0
和x1
中y0
减去y1
来获得x和y位移。
如果您的斜边实际上是极坐标平面中的矢量,那么是的,您将必须取角度的sin
并将其乘以矢量的大小以获得y位移,同样cos
表示x位移。