主要内容

球面内的随机数

这个例子展示了如何在一个球体的体积内创建随机点,正如Knuth所描述的那样[1].本例中的球体以原点为中心,半径为3。

在球体内创建点的一种方法是在球坐标中指定它们。然后你可以把它们转换成笛卡尔坐标来画出来。

首先,初始化随机数生成器,使本例中的结果可重复。

rng (0,“旋风”

计算球体上每个点的仰角。这些值在开区间内, - π / 2 π / 2 ,但并非均匀分布。

Rvals = 2*兰特(1000,1)-1;标高= asin(rvals);

为球体中的每个点创建一个方位角。这些值在开区间内均匀分布, 0 2 π

方位角= 2*pi*rand(1000,1);

为球体中的每个点创建一个半径值。这些值在开区间内, 0 3. ,但并非均匀分布。

Radii = 3*(rand(1000,1).^(1/3));

转换为笛卡尔坐标并绘制结果。

[x,y,z] = sph2cart(方位角,仰角,半径);图plot3 (x, y, z,“。”)轴平等的

图中包含一个轴对象。axis对象包含一个line类型的对象。

如果你想放入随机数表面上看,然后指定一个常数半径值作为球体的最后一个输入参数sph2cart.在本例中,值为3.

[x,y,z] = sph2cart(方位角,高程,3);

参考文献

Knuth, D。计算机程序设计的艺术.第2卷,第3版。阅读,麻州:艾迪生-韦斯利·朗曼,1998年,第134-136页。

另请参阅

||

相关的话题