clear all
close all
clc
R = 150;
center = [R,R,0];
[X,Y,Z] = sphere(50);
X2 = R*X + center(1); %圆心为center
Y2 = R*Y + center(2);
Z2 = R*Z + center(3);
mesh(X2,Y2,Z2,'LineWidth',3,'EdgeColor','w','FaceColor','c'); %mesh网格 surf光滑
hold on
%球面均匀分布
N = 400;
angle1 = rand(1,N)*2*pi;
angle2 = acos(rand(1,N)*2-1);
x = R.*cos(angle1).*sin(angle2) + center(1);
y = R.*sin(angle1).*sin(angle2) + center(2);
z = R.*cos(angle2);
resistance = 1 + (50-1)*rand(1,N);
c = resistance;
scatter3(x,y,z,100,'filled','cdata',c)
%球内均匀分布
% N = 1000;
% angle1 = rand(1,N)*2*pi;
% angle2 = acos(rand(1,N)*2-1);;
% r = power(rand(1,N),1/3);
% x = R*r.*cos(angle1).*sin(angle2) + center(1);
% y = R*r.*sin(angle1).*sin(angle2) + center(2);
% z = R*r.*cos(angle2);
% plot3(x,y,z,'r.');
xlim([(-R+center(1)) (R+center(1))]);
ylim([(-R+center(2)) (R+center(2))]);
zlim([(0+center(3)) (R+center(3))]);
clrbar = colorbar;
caxis([0 50]) % 此命令适用于R2022之前的版本
h=gca;
view(h,0,10) %静态图
camlight right;
lighting phong
axis off
Matlab 画半球,产生均匀分布的点,四维数据可视化
于 2023-04-20 19:38:57 首次发布