24小时热门版块排行榜    

查看: 3149  |  回复: 10
本帖产生 2 个 仿真EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

junmajifei

铜虫 (正式写手)

[求助] 三维数组绘制简单立方晶格 已有1人参与

问题:有一个三维数组,具体为:
cube(:,:,1) =
     1     0     1
     0     1     1
     1     1     0
cube(:,:,2) =

     0     0     1
     1     1     1
     0     1     0
cube(:,:,3) =
     1     1     1
     0     1     1
     1     0     1
通过cube这个三维数组绘制3×3×3的简单立方晶格,cube(:,:,1)代表第一层,cube(:,:,2)代表第2层,cube(:,:,3)代表第3层。0用白色小正方体表示,1用黑色小方体表示。类似下面这张图的效果。

三维数组绘制简单立方晶格
1.jpg


三维数组绘制简单立方晶格-1
2.jpg
回复此楼

» 收录本帖的淘帖专辑推荐

有价值的帖子

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

相信自己,活出自己的精彩!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
9楼: Originally posted by junmajifei at 2014-12-30 13:42:14
您好,可以在plot3D.m中进一步完善吗?画单个球可以做到,修改程序就不简单了。...

我建议重写一个比较简单,不要再plot3D中写,首先写个定球心坐标的程序,在确定要画的球的半径,基本就可以搞定了
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
10楼2014-12-30 14:41:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
1592203609: 金币+5, 仿真EPI+1, 非常优秀的回帖! 2014-10-30 15:36:34
代码如下,plot3D见附件
[code/]
gN=3;                      %随机的规模
N=zeros(gN,gN,gN);
B=rand(gN,gN,gN);
p=0;
dp=0.1;
figure;
set(gcf,'DoubleBuffer','on'); % 设置图形窗口的渲染效果
grid on;
axis([0 12 0 12 0 12])
axis equal
for i=1:4
N((p+(i-1)*dp)<B&B<=(p+i*dp))=1;
plot3D(N,1,'b','vox',1,'pasive');
hold on
pause(0.5)
end
plot3D(~N,1,'r','vox',1,'pasive');
[/code]
三维数组绘制简单立方晶格-2
untitled.jpg

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : plot3D.m
  • 2014-10-30 12:39:41, 7.83 K
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2014-10-30 12:41:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

junmajifei

铜虫 (正式写手)

引用回帖:
2楼: Originally posted by dbb627 at 2014-10-30 12:41:13
代码如下,plot3D见附件

gN=3;                      %随机的规模
N=zeros(gN,gN,gN);
B=rand(gN,gN,gN);
p=0;
dp=0.1;
figure;
set(gcf,'DoubleBuffer','on'); % 设置图形窗口的渲染效果
grid on;
axis ...

您好,你的这个函数文件我感觉挺不错的,不过并没有达到我题目中的那种效果。cube(:,:,1)代表第一层,cube(:,:,2)代表第2层,cube(:,:,3)代表第3层。0用白色小正方体表示,1用黑色小方体表示。
相信自己,活出自己的精彩!
3楼2014-10-30 15:55:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
3楼: Originally posted by junmajifei at 2014-10-30 15:55:31
您好,你的这个函数文件我感觉挺不错的,不过并没有达到我题目中的那种效果。cube(:,:,1)代表第一层,cube(:,:,2)代表第2层,cube(:,:,3)代表第3层。0用白色小正方体表示,1用黑色小方体表示。...

我想有了plot3D,这个cube(:,:,1)代表第一层,cube(:,:,2)代表第2层,cube(:,:,3)代表第3层。0用白色小正方体表示,1用黑色小方体表示 实现起来应该没问题
[/code]
cube(:,:,1) =[
     1     0     1
     0     1     1
     1     1     0];
cube(:,:,2) =[

     0     0     1
     1     1     1
     0     1     0];
cube(:,:,3) =[
     1     1     1
     0     1     1
     1     0     1];
figure;
set(gcf,'DoubleBuffer','on'); % 设置图形窗口的渲染效果
grid on;
axis([0 5 0 5 0 5])
axis equal
plot3D(cube,1,'k','vox',1,'pasive');
hold on
plot3D(~cube,1,'w','vox',1,'pasive');
[/code]
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2014-10-30 16:11:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见