|
168 | 168 | const lowest = points.reduce((a, b) => (a.y > b.y || (a.y === b.y && a.x < b.x) ? a : b));
|
169 | 169 | activeLine.set(2);
|
170 | 170 | log(`Legalsó pont: index: ${points.indexOf(lowest)}`);
|
171 |
| - await delay(1000 - get(speed) * 8); |
| 171 | + await delay(900 - get(speed) * 8); |
| 172 | + await pauseIfNeeded(); |
172 | 173 |
|
173 | 174 | // 2. Polárszög szerint rendezés
|
174 | 175 | const sorted = points
|
|
184 | 185 | log(
|
185 | 186 | `Rendezett pontok indexei: ${[lowest, ...sorted].map((p) => points.indexOf(p)).join(', ')}`
|
186 | 187 | );
|
187 |
| - await delay(1000 - get(speed) * 8); |
| 188 | + await delay(900 - get(speed) * 8); |
| 189 | + await pauseIfNeeded(); |
188 | 190 |
|
189 | 191 | // 3. Stack inicializálása
|
190 | 192 | const stack: Point[] = [lowest, sorted[0]];
|
|
195 | 197 | log(
|
196 | 198 | `Kezdő él: (${lowest.x.toFixed(2)}, ${lowest.y.toFixed(2)}) → (${sorted[0].x.toFixed(2)}, ${sorted[0].y.toFixed(2)})`
|
197 | 199 | );
|
198 |
| - await delay(1000 - get(speed) * 8); |
| 200 | + await delay(900 - get(speed) * 8); |
| 201 | + await pauseIfNeeded(); |
199 | 202 |
|
200 | 203 | for (let i = 1; i < sorted.length; i++) {
|
201 | 204 | const current = sorted[i];
|
|
205 | 208 | activeLine.set(17);
|
206 | 209 | log(`Vizsgált pont indexe: ${points.indexOf(current)}`);
|
207 | 210 | highlightedEdge = [top, current];
|
| 211 | + await delay(900 - get(speed) * 8); |
208 | 212 | await pauseIfNeeded();
|
209 |
| - await delay(1000 - get(speed) * 8); |
210 | 213 |
|
211 | 214 | while (stack.length >= 2 && crossProduct(nextToTop, top, current) <= 0) {
|
212 | 215 | activeLine.set(22);
|
|
218 | 221 | stackEdges = [...stackEdges];
|
219 | 222 | top = stack[stack.length - 1];
|
220 | 223 | nextToTop = stack[stack.length - 2];
|
| 224 | + await delay(900 - get(speed) * 8); |
221 | 225 | await pauseIfNeeded();
|
222 |
| - await delay(1000 - get(speed) * 8); |
223 | 226 | }
|
224 | 227 |
|
225 | 228 | stack.push(current);
|
|
231 | 234 | `Hozzáadva a burokhoz: (${top.x.toFixed(2)}, ${top.y.toFixed(2)}) → (${current.x.toFixed(2)}, ${current.y.toFixed(2)})`
|
232 | 235 | );
|
233 | 236 |
|
| 237 | + await delay(900 - get(speed) * 8); |
234 | 238 | await pauseIfNeeded();
|
235 |
| - await delay(1000 - get(speed) * 8); |
236 | 239 | }
|
237 | 240 |
|
238 | 241 | highlightedEdge = null;
|
|
246 | 249 | `Záró él: (${last.x.toFixed(2)}, ${last.y.toFixed(2)}) → (${first.x.toFixed(2)}, ${first.y.toFixed(2)})`
|
247 | 250 | );
|
248 | 251 |
|
| 252 | + await delay(900 - get(speed) * 8); |
249 | 253 | await pauseIfNeeded();
|
250 |
| - await delay(1000 - get(speed) * 6); |
251 | 254 |
|
252 | 255 | // 4. Végső burok összeállítása
|
253 | 256 | for (let i = 0; i < stack.length; i++) {
|
|
0 commit comments