24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3004  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

零度温馨

新虫 (初入文坛)

[交流] 求助想用mathematica画一个缺一部分的实心球体已有4人参与

想用mathematica画一个缺一部分的实心球体,在球坐标下的表达式是1< r<2,    0<th<1.5Pi,    0<Phi<0.5Pi,  画出来效果应该是一个中空的缺八分之一的实心球体。。。。试了半天只能画出球面画不出实心的。。求助啊!或者matlab能实现也行。。。
新人,金币不多
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Yan_Jordan

木虫 (小有名气)

★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+2, 感谢参与 2017-07-03 18:20:15
引用回帖:
5楼: Originally posted by 零度温馨 at 2017-06-29 10:47:49
非常感谢,程序比我想象中繁琐,和我想要的图形类似,不过楼主发的结果图中并没有中间球形空心的地方,我先去运行下试试!...

Matlab 中没有mathematica 的3D区域全画的函数,一般的球体基本都是只画球面,然后加光照效果。 由于你要求缺一块,所以只能再用侧面和体面填补成一个封闭的球面。

刚检查了下,的确小的空心球没画出来,你修改下底面和侧面R的定义就可以了,我自己画的时候没注意
R=linspace(r1,r2,25);
R1=linspace(r1,r2,25);
R2=linspace(r1,r2,25);

这样就可以了

9楼2017-06-29 19:03:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

Yan_Jordan

木虫 (小有名气)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
月只蓝: 回帖者申请编辑 2017-06-28 16:04:34
月只蓝: 金币+10, 感谢热心帮助! 2017-06-28 16:05:54
月只蓝: 为了更好的显示,已根据回帖的要求再次编辑。 2017-06-29 09:30:41
我试着画了下,发现直接三维好像挺麻烦的,于是用了拼接面的方法,你可以参考下!
基本是画两个球面,一个底面加两个侧面,代码如下
CODE:
clc
clear
close all
%两个球面
r1=1;
r2=2;
t=linspace(0,0.5*pi,25);
p=linspace(0,1.5*pi,25);
[theta,phi]=meshgrid(t,p);
x1=r1*sin(theta).*sin(phi);
y1=r1*sin(theta).*cos(phi);
z1=r1*cos(theta);
x2=r2*sin(theta).*sin(phi);
y2=r2*sin(theta).*cos(phi);
z2=r2*cos(theta); %
[m,n]=size(z1);
re=[0 0 1];%改数字 改变颜色、数字为0-1
colormap(re)
surf(x1,y1,z1);
hold on
surf(x2,y2,z2);
%底面
R=linspace(0,r2,25);
[r,ang]=meshgrid(R,p);
x3=r.*sin(ang);
y3=r.*cos(ang);
z3=zeros(25,25);
surf(x3,y3,z3);
%侧面
R1=linspace(0,r2,25);
[r,ang]=meshgrid(R1,t);
y4=r.*sin(ang);
z4=r.*cos(ang);
x4=zeros(25,25);
surf(x4,y4,z4);
R2=linspace(0,r2,25);
[r,ang]=meshgrid(R2,-t);
x5=r.*sin(ang);
z5=r.*cos(ang);
y5=zeros(25,25);
surf(x5,y5,z5);
shading interp
axis equal;
daspect([1,1,1])
view(3);
axis tight
camlight
grid on
lighting gouraud

其中很多参数你可以自己调整,大体思路是这样。

求助想用mathematica画一个缺一部分的实心球体
结果.JPG
2楼2017-06-28 15:13:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangdegen

新虫 (初入文坛)

★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
月只蓝: 金币+8, 感谢热心帮助! 2017-06-28 16:06:07
RegionPlot3D[ 1 <= x^2 + y^2 + z^2 <= 4, {x, 0, 2}, {y, 0, 2}, {z, 0, 2}]
求助想用mathematica画一个缺一部分的实心球体-1
Untitled-3.jpg

3楼2017-06-28 15:49:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+2, 感谢参与 2017-07-03 18:19:56
引用回帖:
3楼: Originally posted by zhangdegen at 2017-06-28 15:49:36
RegionPlot3D

Untitled-3.jpg

估计图片应该是类似

求助想用mathematica画一个缺一部分的实心球体-2
CODE:
2 > Sqrt[x^2 + y^2 + z^2] > 1 && (3 \[Pi])/2 > ArcTan[z, Sqrt[x^2 + y^2]] > 0 && \[Pi]/2 > ArcTan[x, y] >  0

那么是:
http://blog.csdn.net/stereohomology/article/details/73905623
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
4楼2017-06-28 21:25:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见