很简单啊,随机产生3个坐标,然后把球外的去掉就可以了。采用这个办法是因为在这个题目中,点的分布要求是均匀的,如果是其他类型的分布就可能不行了。
比如该球中心在(0.5, 0.5, 0.5),半径为0.5,要求随机取100个点。
xlist = []; % 存放结果的数组
ylist = [];
zlist = [];
cnt = 0;
while cnt < 100
x = rand();
y = rand();
z = rand();
if (x-0.5)^2 + (y-0.5)^2 + (z-0.5)^2 < 0.25 % 判断是否在球内部
cnt = cnt + 1;
xlist(cnt) = x;
ylist(cnt) = y;
zlist(cnt) = z;
end
end
plot3(xlist, ylist, zlist, 'or'); % 绘制点的分布的三维图