Files
2026-03-13 11:24:41 +08:00

86 lines
3.0 KiB
Matlab

function plotDis_3D_to_2D_new(i, r, OutputRs, type)
coordinate=r.coordinates;
nodes=r.nodes;
cell_divided_by_fracture_flag = r.cell_divided_by_fracture_flag;
nmc = size(nodes,1);
% nel = size(nodes,2);
nel = 4;
if type == 1
v = OutputRs{i}.p;
else
v = 1-OutputRs{i}.sw;%含油饱和度
end
number_divided_cells = size(cell_divided_by_fracture_flag,1);
dis = zeros(nel, nmc-number_divided_cells);
x = zeros(nel, nmc-number_divided_cells);
y = zeros(nel, nmc-number_divided_cells);
the_numbering = 0;
for i = 1 :nmc
if ~ismember(i,cell_divided_by_fracture_flag)
the_numbering = the_numbering +1;
for j = 1 :nel
x(j, the_numbering) = coordinate(nodes(i,j), 1);
y(j, the_numbering) = coordinate(nodes(i,j), 2);
if j == 3
x(j, the_numbering) = coordinate(nodes(i,4), 1);
y(j, the_numbering) = coordinate(nodes(i,4), 2);
end
if j == 4
x(j, the_numbering) = coordinate(nodes(i,3), 1);
y(j, the_numbering) = coordinate(nodes(i,3), 2);
end
dis(j, the_numbering) = v(i);
end
end
end
% 被裂缝剖分的网格绘图
nel = 3;
% if type == 1
% v = OutputRs{i}.p;
% else
% v = 1-OutputRs{i}.sw;%含油饱和度
% end
number_divided_cells = size(cell_divided_by_fracture_flag,1);
dis_division = zeros(nel, 2*number_divided_cells);
x_division = zeros(nel, 2*number_divided_cells);
y_division = zeros(nel, 2*number_divided_cells);
the_numbering_division = 0;
for i = 1 :nmc
if ismember(i,cell_divided_by_fracture_flag)
the_numbering_division = the_numbering_division +2;
% for j = 1 :nel
x_division(1, the_numbering_division-1) = coordinate(nodes(i,1), 1);
y_division(1, the_numbering_division-1) = coordinate(nodes(i,1), 2);
x_division(2, the_numbering_division-1) = coordinate(nodes(i,4), 1);
y_division(2, the_numbering_division-1) = coordinate(nodes(i,4), 2);
x_division(3, the_numbering_division-1) = coordinate(nodes(i,3), 1);
y_division(3, the_numbering_division-1) = coordinate(nodes(i,3), 2);
dis_division(1:3, the_numbering_division-1) = v(i)*ones(3,1);
x_division(1, the_numbering_division) = coordinate(nodes(i,1), 1);
y_division(1, the_numbering_division) = coordinate(nodes(i,1), 2);
x_division(2, the_numbering_division) = coordinate(nodes(i,2), 1);
y_division(2, the_numbering_division) = coordinate(nodes(i,2), 2);
x_division(3, the_numbering_division) = coordinate(nodes(i,4), 1);
y_division(3, the_numbering_division) = coordinate(nodes(i,4), 2);
dis_division(1:3, the_numbering_division) = v(nmc+the_numbering_division/2)*ones(3,1);
% end
end
end
% fill(x,y,dis,'EdgeAlpha',1);
figure('color','w');
fill(x,y,dis,'EdgeColor','interp');
hold on;
fill(x_division,y_division,dis_division,'EdgeColor','interp');
xlabel( 'x, m' );
ylabel( 'y, m' );
axis equal;
axis tight
xlim([0,60]);
ylim([0,60]);
colorbar
colormap jet
% fill(x,y,dis);
% axis off