% 主程序示例 clear; clc; close all; % 设置网格参数 nx = 20; ny = 15; nz = 10; % 生成非均匀网格尺寸 dx = linspace(0.5, 1.5, nx)'; % x方向网格尺寸从0.5到1.5变化 dy = linspace(0.8, 1.2, ny)'; % y方向网格尺寸从0.8到1.2变化 dz = ones(nz, 1) * 1.0; % z方向均匀网格 % 生成示例数据(例如:三维高斯分布) x_center = sum(dx)/2; % 中心位置 y_center = sum(dy)/2; z_center = sum(dz)/2; % 计算每个网格点的坐标 x_pos = zeros(nx, 1); x_pos(1) = dx(1)/2; for i = 2:nx x_pos(i) = x_pos(i-1) + (dx(i-1) + dx(i))/2; end y_pos = zeros(ny, 1); y_pos(1) = dy(1)/2; for i = 2:ny y_pos(i) = y_pos(i-1) + (dy(i-1) + dy(i))/2; end z_pos = zeros(nz, 1); z_pos(1) = dz(1)/2; for i = 2:nz z_pos(i) = z_pos(i-1) + (dz(i-1) + dz(i))/2; end % 创建网格坐标 [X, Y, Z] = ndgrid(x_pos, y_pos, z_pos); % 生成示例物理量数据(三维高斯分布) sigma_x = max(x_pos)/3; sigma_y = max(y_pos)/3; sigma_z = max(z_pos)/3; data = exp(-((X - x_center).^2/(2*sigma_x^2) + ... (Y - y_center).^2/(2*sigma_y^2) + ... (Z - z_center).^2/(2*sigma_z^2))); % 绘制不同类型的图 % plot_3d_grid_data_slice(nx, ny, nz, dx, dy, dz, data); % plot_3d_grid_data_scatter(nx, ny, nz, dx, dy, dz, data); % plot_3d_grid_data_volume(nx, ny, nz, dx, dy, dz, data); % 方法1:基本体素图 fprintf('绘制方法1:基本体素图...\n'); plot_3d_grid_voxel_full(nx, ny, nz, dx, dy, dz, data); title('方法1:基本体素图 - 高斯分布'); % 方法2:优化版本 fprintf('绘制方法2:优化版本...\n'); plot_3d_grid_patch_optimized(nx, ny, nz, dx, dy, dz, data); title('方法2:优化版本 - 球壳分布'); % 方法3:体素函数法 fprintf('绘制方法3:体素函数法...\n'); plot_3d_grid_voxel_function(nx, ny, nz, dx, dy, dz, data); title('方法3:体素函数法 - 波纹分布'); % 方法4:半透明效果 fprintf('绘制方法4:半透明效果...\n'); plot_3d_grid_transparent(nx, ny, nz, dx, dy, dz, data);