球状图
曲线是画在球的表面的,想问一下,思路是不是 ,首先用sphere画出球,视角是从正上方向下看(问一下,这个用什么语句实现),然后把要画的曲线在球形坐标系的数据转化成x,y,z坐标系,即用 = SPH2CART(TH,PHI,R) 最后hold on再用plot3(x,y,z)在球面上继续画曲线呢?高手指导一下思路和牵涉到的语句!推荐个例题也行啊![ 本帖最后由 SPUR0645 于 2009-2-9 00:13 编辑 ]
回复 楼主 SPUR0645 的帖子
视角是从正上方向下看(问一下,这个用什么语句实现)-- view 这是我自己编的程序,跟你的思路有点像function plot3d(k) %k是球的个数
% this function is used to draw the balls in the three dimensions
guliaozuobiao_3d; % 调用脚本M文件(各个球的直角坐标和直径)
nop=30; % 用30个点来控制画球
m=ones(nop,1); % 生成nop*1维的元素为1的矩阵
n=ones(1,nop); % 生成1*nop维的元素为1的矩阵
theta=m*linspace(-pi,pi,nop); % 形成球坐标里的theta方阵,其中linspace(-pi,pi,nop)是在(-pi,pi)之间均匀插值
phi=(linspace(-pi/2,pi/2,nop))'*n;%形成球坐标里的phi方阵,其中linspace(-pi/2,pi/2,nop)是在(-pi/2,pi/2)之间均匀插值
axis(); %设定绘图坐标
for i=1:k
r1=ones(nop)*r(i); %形成球半径方阵
=sph2cart(theta,phi,r1); %将球坐标值转换到直角坐标下的x,y,z值
x2=x1+x(i);
y2=y1+y(i); % 调整球心坐标
z2=z1+z(i);
mesh(x2,y2,z2); %画球
hold on; %开启figure保留功能,即在同一张figure上画球
grid on; %开启网格功能
axis equal;
end
页:
[1]