我有一個函數(從MATLAB文檔複製而來)可以在球體內生成隨機點。但是,球內的一些點是不允許的。如何在空心球內產生隨機點,允許半徑爲1<r<2
。換句話說,這些點應該位於半徑1到2之間,因此在r = [0 1]之間不允許有任何點。使用MATLAB生成空心球體內的隨機點
編輯:完全忘記包括功能
function [x,y,z] = PointsInSphere(r,n)
rvals = 2*rand(n,1)-1;
elevation = asin(rvals);
azimuth = 2*pi*rand(n,1);
radii = r*(rand(n,1).^(1/r));
[x,y,z] = sph2cart(azimuth,elevation,radii);
end
您是否嘗試在3D中生成半徑爲1和半徑爲2的球之間的隨機位置? –
準確地說@StackPlayer。 – Ortix92