首页 > 其他 > 详细

删取网格中的一部分

时间:2016-05-23 21:08:18      阅读:122      评论:0      收藏:0      [点我收藏+]
技术分享
 1 function [node,elem] = delmesh(node,elem,expr)
 2 %% DELMESH delete part of the mesh 
 3 
 4 dim = size(node,2); elemdim = size(elem,2);
 5 %% delete element
 6 switch elemdim
 7     case 3
 8         center = (node(elem(:,1),:)+node(elem(:,2),:)+node(elem(:,3),:))/3;
 9     case 4    
10         center = (node(elem(:,1),:) + node(elem(:,2),:) ...
11                 + node(elem(:,3),:) + node(elem(:,4),:))/4;
12 end
13 x = center(:,1);  y = center(:,2); %#ok<*NASGU>
14 if dim == 3
15     z = center(:,3); %#ok<*NASGU>
16 end
17 idx = eval(expr);
18 elem(idx,:) = [];
19 
20 %% delete vertices
21 isValidNode = false(size(node,1),1);
22 isValidNode(elem(:)) = true;
23 node = node(isValidNode,:);
24 
25 %% shift index of element
26 Nnew = sum(isValidNode);
27 indexMap(isValidNode) = (1:Nnew);
28 elem = indexMap(elem);
delmesh

 

删取网格中的一部分

原文:http://www.cnblogs.com/wangshixi12/p/5521292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!