⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bh.m

📁 Three dimensional hydrogen atom spherical harmonics visualization.
💻 M
字号:
clear all;
clc;

N = 6;
L = 5;
M = 3;

if N <= L
    error('L i M nie moga byc wieksze badz rowne N');
end
if N < 0 
    error('N nie moze byc mniejsze zero');
end
if M < -L || M > L
    error('M nie moze byc spoza zakresu (-L .. +L)');
end

%nt = 240;
%np = 360;
nt = 60;
np = 90;

t1 = 0;
t2 = pi;
dt = (t2 - t1) / (nt - 1);
theta = [t1 : dt : t2];

p1 = 0;
p2 = 2 * pi;
dp = (p2 - p1) / (np - 1);
phi = [p1 : dp : p2];

%for N = 1 : 10
%N
%for r = 0.5 : 0.05 : 3
%    r
r = 10;   % r = wielokrotnosc ao

%rr = [0 : 50];
%RR = radial(N, L, rr);
%plot(rr, RR);
%figure;

sph = radial(N, L, r) * harmonics(L, M, cos(theta))' * cos(M * phi);
%sph = abs(radial(N, L, r) * hh(L, M, cos(theta))' * cos(M * phi));

x = sph .* (sin(theta)' * sin(phi));
y = sph .* (sin(theta)' * cos(phi));
z = sph .* (cos(theta)' * ones(size(phi)));

handle = surfl(x, y, z);
set(handle, 'FaceColor', [1 0 0]);
set(handle, 'EdgeColor', 'none');
set(handle, 'FaceAlpha', 0.6);
set(handle)
hold on;

sph2 = zeros(size(sph));
[w k] = size(sph);
for j = 1 : w
    for n = 1 : k
        if sph(j, n) <= 0
            sph2(j, n) = sph(j, n);
            sph(j, n) = 0;
        end
    end
end

sph2 = abs(sph2);

x = sph2 .* (sin(theta)' * sin(phi));
y = sph2 .* (sin(theta)' * cos(phi));
z = sph2 .* (cos(theta)' * ones(size(phi)));

handle = surfl(x, y, z);
set(handle, 'FaceColor', [0 1 0]);
set(handle, 'EdgeColor', 'none');
set(handle, 'FaceAlpha', 0.6);

light;
lighting phong;

%SHADING FLAT;

%plot(y)
%figure

%handle = surf(phi, theta, sph);
%set(handle, 'EdgeColor', 'none');
%set(handle, 'FaceAlpha', 0.6);
%axis('off')
%xlabel('phi')
%ylabel('theta')
%zlabel('Y')

%figure

%disp('x');
%size(x)
%disp('y');
%size(y)
%disp('z');
%size(z)

%handle = surf(x, y, z);
%title(['Funkcja falowa atomu H dla stanu [', num2str(N), ' ', num2str(L), ' ', num2str(M), '] w odleglosi r = ao * ', num2str(r)])
%axis('off');
%set(handle, 'EdgeColor', 'none');
%set(handle, 'FaceAlpha', 0.6);
%SHADING INTERP;
%view([1, 1, 0]);    

%xlim([-0.1 0.1])
%ylim([-0.1 0.1])
%zlim([-0.1 0.1])
 
%pause(0.05)
%end
%end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -