図形の外枠の座標を抜き出したいです。

1 view (last 30 days)
koba
koba on 11 Nov 2019
1枚目の写真のような青い図形があります。この図形の外枠の座標を抜き出したく、関数convhullを使ったところ赤い図形ができました。
赤い図形がぴったり青い図形に沿うようにしたいのですが、くぼんでいる場所が上手くいかないので、どのようにしたら良いでしょうか。
a.jpgb.jpg
nodes =[
1 0 0
2 10 0
3 10 10
4 0 10
5 0 20
6 10 20
7 0 30
8 10 30
9 0 40
10 10 40
11 0 50
12 10 50
13 20 0
14 20 10
15 20 20
16 20 30
17 20 40
18 20 50
19 30 0
20 30 10
21 30 20
22 30 30
23 30 40
24 30 50
25 40 0
26 40 10
27 40 20
28 40 30
29 40 40
30 40 50
31 50 0
32 50 10
33 50 20
34 50 30
35 50 40
36 50 50
37 60 0
38 60 10
39 60 20
40 60 30
41 60 40
42 60 50
43 70 0
44 70 10
45 70 20
46 70 30
47 70 40
48 70 50
49 80 0
50 80 10
51 80 20
52 80 30
53 80 40
54 80 50
55 90 0
56 90 10
57 90 20
58 90 30
59 90 40
60 90 50
61 100 0
62 100 10
63 100 20
64 100 30
65 100 40
66 100 50
67 110 0
68 110 10
69 110 20
70 110 30
71 110 40
72 110 50
73 120 0
74 120 10
75 120 20
76 120 30
77 120 40
78 120 50
79 130 0
80 130 10
81 130 20
82 130 30
83 130 40
84 130 50
85 140 0
86 140 10
87 140 20
88 140 30
89 140 40
90 140 50
91 150 0
92 150 10
93 150 20
94 150 30
95 150 40
96 150 50
97 160 0
98 160 10
99 160 20
100 160 30
101 160 40
102 160 50
103 170 0
104 170 10
105 170 20
106 170 30
107 170 40
108 170 50
109 180 0
110 180 10
111 180 20
112 180 30
113 180 40
114 180 50
115 190 0
116 190 10
117 190 20
118 190 30
119 190 40
120 190 50
121 200 0
122 200 10
123 200 20
124 200 30
125 200 40
126 200 50
127 210 0
128 210 10
129 210 20
130 210 30
131 210 40
132 210 50
133 220 0
134 220 10
135 220 20
136 220 30
137 220 40
138 220 50
139 0 60
140 10 60
141 10 70
142 0 70
143 0 80
144 10 80
145 20 60
146 20 70
147 20 80
148 30 60
149 30 70
150 30 80
151 40 60
152 40 70
153 40 80
154 50 60
155 50 70
156 50 80
157 60 60
158 60 70
159 60 80
160 70 60
161 70 70
162 70 80
163 80 60
164 80 70
165 80 80
166 90 60
167 90 70
168 90 80
169 100 60
170 100 70
171 100 80
172 110 60
173 110 70
174 110 80
175 120 60
176 120 70
177 120 80
178 130 60
179 130 70
180 130 80
181 140 60
182 140 70
183 140 80
184 150 60
185 150 70
186 150 80
187 160 60
188 160 70
189 160 80
190 170 60
191 170 70
192 170 80
193 180 60
194 180 70
195 180 80
196 190 60
197 190 70
198 190 80
199 200 60
200 200 70
201 200 80
202 210 60
203 210 70
204 210 80
205 220 60
206 220 70
207 220 80];
KIERU_elems =[
22 73 74 68
24 81 82 76
25 62 68 63
27 71 72 66
39 84 78 83
49 72 78 172
50 71 77 72
52 181 90 96
66 79 80 74
73 63 68 69
75 77 82 83
76 75 80 81
80 74 75 69
103 69 75 70
104 61 62 56
105 61 67 62
106 67 68 62
107 67 73 68
111 56 62 57
112 61 56 55
113 62 63 57
121 58 63 64
125 58 57 63
126 63 69 64
127 76 82 77
205 66 65 71
218 70 65 64
220 70 71 65
221 70 75 76
222 72 77 78
223 71 70 76
224 84 83 89
225 78 77 83
226 90 89 95
227 83 82 88
228 178 84 90
229 84 89 90
231 90 95 96
235 172 78 175
236 181 178 90
237 175 78 84
238 84 178 175
305 71 76 77
306 75 81 76
308 89 83 88
311 64 69 70
312 68 74 69
314 88 82 87
325 79 74 73
326 80 75 74
328 87 82 81];
nre=size(KIERU_elems,1);
for i=1:nre
n1=KIERU_elems(i,2);
n2=KIERU_elems(i,3);
n3=KIERU_elems(i,4);
n1x=nodes(n1,2);
n1y=nodes(n1,3);
n2x=nodes(n2,2);
n2y=nodes(n2,3);
n3x=nodes(n3,2);
n3y=nodes(n3,3);
P= plot([n1x,n2x,n3x,n1x],[n1y,n2y,n3y,n1y],'b-');
daspect([1 1 1])
hold on
Px(i,:)=P.XData;
Py(i,:)=P.YData;
end
CC=convhull (Px,Py);
hold on
plot(Px(CC),Py(CC),'Color','r')

Answers (0)

Categories

Find more on グラフィックス パフォーマンス in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!