水分子生成

分子生成

clc;clear all;close all;
Ai=1e-10;
num=50;
X=10*Ai*rand(num,1);Y=10*Ai*rand(num,1);Z=10*Ai*rand(num,1);
%X=0;Y=0;Z=0;
R_O=1.48*Ai;%氧原子直径玻尔模型
R_H=1.06*Ai;%氢原子直径玻尔模型
theta_OH=104.523;%H-O-H键角
L_OH=0.95718*Ai;%OH原子间键长实验值
L_HH=L_OH*sind(theta_OH/2);%HH原子间距计算值
az=30;%方位角
el=5;%仰角
ro=10;%旋转角
dz1=L_OH*sind(el);dx1=L_OH*cosd(el)*sind(az);dy1=L_OH*cosd(el)*cosd(az);

Lvt=L_OH*cosd(el)*sind(theta_OH);%第二个氢原子到O-H线上垂直距离

azp=180-asind(Lvt*cosd(ro)/L_OH);%旋转后的方位角
elp=asind(Lvt*sind(ro)/L_OH);%旋转后的仰角
dz2=L_OH*sind(elp+el);%第二个原子相对于中心原子的z距离
dx2=L_OH*cosd(el+elp)*sind(az+azp+theta_OH);
dy2=L_OH*cosd(el+elp)*cosd(az+azp+theta_OH);
[x y z]=sphere(100);

for m=1:num
    hold on;
h1=surf(X(m)+x*R_O,Y(m)+y*R_O,Z(m)+z*R_O);
end

for m=1:num
P1x=X(m)+dx1;P1y=Y(m)+dy1;P1z=Z(m)+dz1;
    P2x=X(m)+dx2;P2y=Y(m)+dy2;P2z=Z(m)+dz2;
    h2=surf(P1x+x*R_H,P1y+y*R_H,P1z+z*R_H);
    h3=surf(P2x+x*R_H,P2y+y*R_H,P2z+z*R_H);
    
end
colormap([1 0 0]);
axis equal;view(3);
camlight right;
shading interp;%去掉网格
lighting phong;%哑光效果,去除表面纹路
xlabel('x');ylabel('y');

其中,单个球体的函数如下

function atom_ball(X,Y,Z,R)%坐标和球半径
Ai=1e-10;%单位转换,米转埃米
X=Ai*X;Y=Ai*Y;Z=Ai*Z;R=Ai*R;
num=length(X);%坐标点数
[x y z]=sphere(100);
colormap([0 0 1]);
for m=1:num
    hold on;surf(X(m)+x*R,Y(m)+y*R,Z(m)+z*R);
end
hold off;
axis equal;view(3);
camlight right;%右边添加光照
shading interp;%去掉网格
lighting phong;%哑光效果,去除表面纹路
end

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碎月静豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值