-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfillLatticeFromCell.m
84 lines (76 loc) · 2.29 KB
/
fillLatticeFromCell.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
function fillLatticeFromCell(cPTS,color,mIsBoundary,mIsGood,markersize, scale)
lw=5;
[m,n]=size(cPTS);
if nargin <2
color='r';
IsHole=zeros(m,n);
markersize=1;
mIsGood=ones(m,n);
mIsBoundary=zeros(m,n);
elseif nargin <3
IsHole=zeros(m,n);
markersize=1;
mIsBoundary=zeros(m,n);
mIsGood=ones(m,n);
elseif nargin<5
markersize=4;
end
if isempty('mIsBoundary')
mIsBoundary=zeros(m,n);
end
mIsBoundary=zeros(m,n);
hold on;
for y=1:m
for x=1:n
if x+1<=n
if mIsBoundary(y,x)~=1 && mIsBoundary(y,x+1)~=1 &&mIsGood(y,x)>0 &&mIsGood(y,x+1)>0
xx=scale*[cPTS{y,x}(1),cPTS{y,x+1}(1)];
yy=scale*[cPTS{y,x}(2),cPTS{y,x+1}(2)];
plot(xx,yy,'color',color,'linewidth',lw);
end
end
if y+1<=m
if mIsBoundary(y,x)~=1 && mIsBoundary(y+1,x)~=1 && mIsGood(y,x)>0&&mIsGood(y+1,x)>0
xx=scale*[cPTS{y,x}(1),cPTS{y+1,x}(1)];
yy=scale*[cPTS{y,x}(2),cPTS{y+1,x}(2)];
plot(xx,yy,'color',color,'linewidth',lw);
end
end
end
pause(0.01);
end
for y=1:m
for x=1:n
if mIsBoundary(y,x)~=1
xx=scale*[cPTS{y,x}(1)];
yy=scale*[cPTS{y,x}(2)];
flag=0;
if x+1 <=n
flag=flag|mIsGood(y,x+1);
end
if y+1 <=m
flag=flag|mIsGood(y+1,x);
end
if y-1 >=1
flag=flag|mIsGood(y-1,x);
end
if x-1 >=1
flag=flag|mIsGood(y,x-1);
end
if mIsGood(y,x)>0 && flag
plot(xx,yy,'V','color',color,'MarkerFaceColor','y','MarkerSize',markersize);
else
% plot(xx,yy,'Marker', 'd','color',color,'MarkerFaceColor','b','MarkerSize',markersize);
end
end
if mIsBoundary(y,x)==1
% xx=[cPTS{y,x}(1)-10 ,cPTS{y,x}(1)+10];
% yy=[cPTS{y,x}(2)-10 ,cPTS{y,x}(2)+10];
% plot(xx,yy,'b','linewidth',1);
% xx=[cPTS{y,x}(1)+10, cPTS{y,x}(1)-10];
% yy=[cPTS{y,x}(2)-10, cPTS{y,x}(2)+10];
% plot(xx,yy,'b','linewidth',1);
end
end
end
hold off;