24小时热门版块排行榜    

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

弋痕夕6

新虫 (小有名气)

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

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

@beefly @月只蓝 发自小木虫IOS客户端
回复此楼
已阅   回复此楼   关注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的回帖
查看全部 3 个回答

弋痕夕6

新虫 (小有名气)

2楼2017-03-24 18:47:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见