This commit is contained in:
xinxiao
2026-03-13 11:24:41 +08:00
commit 04e2bb29c7
238 changed files with 29102 additions and 0 deletions
@@ -0,0 +1,105 @@
function plot_3d_grid_voxel_function_fixed(nx, ny, nz, dx, dy, dz, data)
% 使voxel函数绘制三维网格
%
% nx, ny, nz -
% dx, dy, dz -
% data - (nx, ny, nz)
%
x_center = zeros(nx, 1);
x_center(1) = dx(1)/2;
for i = 2:nx
x_center(i) = x_center(i-1) + (dx(i-1) + dx(i))/2;
end
y_center = zeros(ny, 1);
y_center(1) = dy(1)/2;
for i = 2:ny
y_center(i) = y_center(i-1) + (dy(i-1) + dy(i))/2;
end
z_center = zeros(nz, 1);
z_center(1) = dz(1)/2;
for i = 2:nz
z_center(i) = z_center(i-1) + (dz(i-1) + dz(i))/2;
end
%
figure('Position', [100, 100, 1000, 800]);
hold on;
%
colormap jet;
caxis([min(data(:)), max(data(:))]);
%
alpha_val = 0.9; %
for i = 1:nx
for j = 1:ny
for k = 1:nz
% -
voxel_fixed([x_center(i), y_center(j), z_center(k)], ...
[dx(i), dy(j), dz(k)], ...
data(i, j, k), alpha_val);
end
end
end
%
colorbar;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('');
axis equal;
view(3);
grid on;
box on;
%
lighting gouraud;
light('Position', [1 1 1], 'Style', 'infinite');
light('Position', [-1 -1 -1], 'Style', 'infinite');
hold off;
end
function voxel_fixed(center, size, value, alpha)
% 使
% center: [x, y, z]
% size: [dx, dy, dz]
% value:
% alpha:
% 8
x = center(1) + [-size(1)/2, size(1)/2];
y = center(2) + [-size(2)/2, size(2)/2];
z = center(3) + [-size(3)/2, size(3)/2];
% 8
vertices = [x(1), y(1), z(1);
x(2), y(1), z(1);
x(2), y(2), z(1);
x(1), y(2), z(1);
x(1), y(1), z(2);
x(2), y(1), z(2);
x(2), y(2), z(2);
x(1), y(2), z(2)];
% 6
faces = [1 2 3 4;
5 6 7 8;
1 2 6 5;
2 3 7 6;
3 4 8 7;
4 1 5 8];
% 使 'flat' 使
patch('Vertices', vertices, 'Faces', faces, ...
'FaceColor', 'flat', ... % 'flat'
'FaceVertexCData', value * ones(size(faces, 1), 1), ... %
'CDataMapping', 'scaled', ...
'FaceAlpha', alpha, ...
'EdgeColor', 'none');
end