Matlab绘制单元,云图

四结点的平面单元

复制代码
function plot_plane_4_nodes(p,t,U)
    %%% 传入的t需要是Nelem*m的,Nelem的是单元总数,m是一个单元含有的结点数目
    %%% 传入的p是Nnode*3的,Nnode的是结点总数,3列坐标分别为Xcoord,Ycoord,Zcoord
    %%% 传入的U是列向量,数目和p的行数相同
figure;axis equal
%===== map =====
map = [0 0 255;
       0 160 255;
       0 255 255;
       0 255 160;
       0 255 0;
       178 255 0;
       255 255 0;
       255 145 0;
      255 0 0;]./255;
colormap(map)

%%% 'Faces'后面的参数指定哪些结点构成一个面(每一行是一个面的顶点编号),即单元信息
%%% 'Vertices'后面的参数是一系列顶点坐标(每一行是一个顶点坐标),即结点信息
%%% 'FaceVertexCData'后面的参数是一系列顶点坐标的值,会自动插值颜色,值即结点位移
ss=patch('Faces',t(:,[1,2,3,4]),'Vertices',p,'FaceVertexCData',U);
ss.FaceColor = 'interp';
ss.EdgeColor='black';   %%%  none , white
ss.LineStyle = '-'; 
ss.LineWidth = 0.01;
colorbar
复制代码

六面体或四面体绘制6个面或者4个面即可

复制代码

edge_color = 'black';
patch('Faces',t(:,[1,2,3,4]),'Vertices',p1,'FaceColor','interp','EdgeColor',edge_color,'FaceVertexCData',U);
patch('Faces',t(:,[5,6,7,8]),'Vertices',p1,'FaceColor','interp','EdgeColor',edge_color,'FaceVertexCData',U);
patch('Faces',t(:,[1,5,8,4]),'Vertices',p1,'FaceColor','interp','EdgeColor',edge_color,'FaceVertexCData',U);
patch('Faces',t(:,[2,6,7,3]),'Vertices',p1,'FaceColor','interp','EdgeColor',edge_color,'FaceVertexCData',U);
patch('Faces',t(:,[1,2,6,5]),'Vertices',p1,'FaceColor','interp','EdgeColor',edge_color,'FaceVertexCData',U);
ss=patch('Faces',t(:,[4,3,7,8]),'Vertices',p1,'FaceColor','flat','EdgeColor',edge_color,'FaceVertexCData',U);
ss.FaceColor = 'interp';

复制代码

 

posted @   xdd1997  阅读(642)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示