📄 fixmesh.m
字号:
function [p, t]=fixmesh(p,t)% FIXMESH deletes double points produced in distmesh2d% [p, t] = fixmesh(p,t) deletes double points produced by distmesh2d. It% also adjusts the triangulation matrix t accordingly. Points in t are% also permuted to produce counter clockwise oriented triangles.%% M. Truffer, Oct. 2004%% see also: DISTMESH2D% check for doublesNp=size(p,1); dble=zeros(1,Np);for i=1:Np-1 for j=i+1:Np if norm(p(i,:)-p(j,:))==0, dble(j)=1; end end end% delete the second point of any doubles (t only seems to refer to the% first point)i=1;while i<=size(dble,2) if dble(i) p(i,:)=[]; [I J]=find(t>i); % all points > i need to be reduced by 1. for k=1:size(I,1) t(I(k),J(k))=t(I(k),J(k))-1; end dble(i)=[]; end i=i+1; end% check for the order of nodes in a triangle. If clockwise permute node 2% and 3for q=1:size(t,1) j=t(q,1); k=t(q,2); l=t(q,3); b2=p(l,2)-p(j,2); b3=p(j,2)-p(k,2); c2=-p(l,1)+p(j,1); c3=-p(j,1)+p(k,1); twoA=b2*c3-c2*b3; if twoA<0 t(q,2)=l; t(q,3)=k; end end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -