24小时热门版块排行榜    

查看: 339  |  回复: 2

弋痕夕6

新虫 (小有名气)

[求助] Matlab中怎样设计六方密堆 已有1人参与

设计出六方密堆结构 并且能可以假设一种物质在不同方向上向其喷涂,能会一部分的 也告知一下 在下感激不尽

@beefly @月只蓝 发自小木虫IOS客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

弋痕夕6

新虫 (小有名气)

2楼2017-03-24 18:47:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

CODE:
function HCPlattice
function HCPlattice
a=1;  %将a归一化。
x0=a/2*[0, 2, 1, -1, -2, -1, 1, 0, -1, 1, 0, 2, 1, -1, -2, -1, 1];
y0=sqrt(3)*a/6*[0, 0, 3, 3, 0, -3, -3, 2, -1, -1, 0, 0, 3, 3, 0, -3, -3];
z0=sqrt(6)*a/3*[0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2];
% x0=[0,a,a/2,-a/2,-a,-a/2,a/2,0,-a/2,a/2,0,a,a/2,-a/2,-a,-a/2,a/2];
%
% y0=[0,0,sqrt(3)*a/2,sqrt(3)*a/2,0,-sqrt(3)*a/2,-sqrt(3)*a/2,sqrt(3)*a/3,-sqrt(3)*a/6,-sqrt(3)*a/6,0,0,sqrt(3)*a/2,sqrt(3)*a/2,0,-sqrt(3)*a/2,-sqrt(3)*a/2];
%
% z0=[0,0,0,0,0,0,0,sqrt(6)*a/3,sqrt(6)*a/3,sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3,2*sqrt(6)*a/3];

%(注意,在matlab中运行时,要将x0,y0,z0后面的三个表达式拉到1排里。)


%下面这句可以用来初步查看坐标位置     

figure, plot3(x0,y0,z0,'o')


%下面画原子图

r=a/2;   %可自行调整半径  不同半径的画图效果差别蛮大的

rho=0:0.05*pi:2*pi;

phi=-pi:0.05*pi:pi;

figure

for i=1:17

    x=x0(i)+r*(cos(phi))'*(cos(rho));

    y=y0(i)+r*(cos(phi))'*(sin(rho));

    z=z0(i)+r*(sin(phi))'*(ones(size(rho)));

    surf (x,y,z);

    shading interp   %使图形光滑,无边界阴影

    hold on

end

axis equal

Matlab中怎样设计六方密堆
HCP.jpg

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.
3楼2017-03-24 20:15:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 弋痕夕6 的主题更新
信息提示
请填处理意见