如何在matlab上画出球面上均匀分布的20个点

如何在matlab上画出球面上均匀分布的20个点
我可以用
n=20;
for k=1:n
x=cos(2*k*pi/n);
y=sin(2*k*pi/n);
plot(x,y,'r*')
end
做出在二维圆面上均匀分布的点,
现在急求如何用类似的方法求出在三维球面上分布的点,我用的方法是
n=20;
k=1:20;
x=cos(2*k*pi/n).*sin(2*k*pi/n)
y=sin(2*k*pi/n).*sin(2*k*pi/n)
z=cos(2*k*pi/n)
plot3(x,y,z,'*')
但是不知道这个画出来的点是不是均匀分布的,求大侠给指导一下!如果这个是给个明确答复,不是的话麻烦你帮忙想一下
asapemm2 1年前 已收到1个回答 举报

骑驴看马 幼苗

共回答了13个问题采纳率:84.6% 举报

phi = (1+sqrt(5))/2;
v = [1/phi phi 0;-1/phi phi 0;1/phi -phi 0;-1/phi -phi 0
phi 0 1/phi; -phi 0 1/phi;phi 0 -1/phi;-phi 0 -1/phi
0 1/phi phi;0 -1/phi phi;0 1/phi -phi;0 -1/phi -phi
1 1 1;1 -1 1; 1 1 -1;-1 1 1;-1 -1 1;-1 1 -1;-1 -1 -1;1 -1 -1];
x=v(:,1);
y=v(:,2);
z=v(:,3);
plot3(x,y,z,'*')
以上20个点均匀分布在半径为sqrt(3)的球上,组成了正12面体的20个顶点.

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.032 s. - webmaster@yulucn.com