在matlab中如何绘制部分球面网格图

球面方程为:x^2+y^2+z^2=300^2x∈[-150~300],y∈[0~300],z∈[-150~150]请给出具体程序,若正确追加分值,需要网格图,最好网格密... 球面方程为:x^2+y^2+z^2=300^2
x∈[-150~300],y∈[0~300],z∈[-150~150]
请给出具体程序,若正确追加分值,需要网格图,最好网格密度小一点
如何在这个球面基础上,绘制一些平面与该球面的交割线呢?这些平面经过Z轴,且每个平面夹角为14.3°,绘制15个这样的交割线,请高手指点
展开
 我来答
wacs5
2011-04-04 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2804万
展开全部
你的数据范围大,你要网格密度小,这得看你的机器的本事了。
n=50; %调大这个
[x,y,z]=sphere(n);
x=x*300;
y=y*300;
z=z*300;
z(x<-150 | x>300)=nan;
z(y<0 |y>300)=nan;
z(z<-105|z>150)=nan;
mesh(x,y,z)
更多追问追答
追问
你这个程序出错了,怎么回事?
追答
你复制进去,
等一下再改n=50
我这里没有问题。
依思溪02v
2011-04-05 · TA获得超过955个赞
知道小有建树答主
回答量:558
采纳率:0%
帮助的人:663万
展开全部
x=-150:300;y=0:300;
[X,Y]=meshgrid(x,y);
z1=sqrt(90000-X.^2-Y.^2);
z2=-sqrt(90000-X.^2-Y.^2);
for i=1:length(x)*length(y)
if z1(i)>150
z1(i)=NaN;
end
if z2(i)<-150
z2(i)=NaN;
end
end
mesh(x,y,z1)
hold on
mesh(x,y,z2)
hold off
追问
如何在这个球面基础上,绘制一些平面与该球面的交割线呢?这些平面经过Z轴,且每个平面夹角为14.3°,绘制15个这样的交割线,请高手指点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式