Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Vertici esercizio 1

alessioclemente (19640 points)
19 67 153
in Es1 by (19.6k points)
recategorized by
Salve, non ho capito bene come trovare i vertici nell'esercizio 1, qualcuno potrebbe spiegarlo bene?
514 views
closed

1 Answer

Best answer
Xriuk (13590 points)
8 24 116
by (13.6k points)
selected by

Ti dico come faccio io:

  1. Scorro i pixel, trovo un punto bianco (lo prendo come angolo in alto a sinistra)
  2. Da lì controllo se esiste un angolo in alto a destra e uno in basso a sinistra
  3. Dal punto in basso a sinistra controllo che esista una corrispondenza nell'angolo in basso a destra
  4. Controllo anche che dal punto in alto a destra esiste una corrispondenza nell'angolo in basso a destra (serve a controllare che il rettangolo sia effettivamente chiuso)
  5. Confronto tutti i vertici per vedere se corrispondono a un rettangolo

Per quanto riguarda trovare i vertici, tu sai che il bordo deve essere continuo, ma un vertice è formato non solo dal bordo, ma anche da una linea che va in un'altra direzione.
Quindi per esempio per trovare il vertice in alto a destra partendo dal punto in alto a sinistra: prosegui sulla stessa riga, controlli che ogni cella sia bianca, a questo punto ci sono tre strade:

  • Arrivi a fine riga dell'immagine: se non hai trovato nulla, allora non esiste il vertice, quindi il punto preso prima non fa parte di un rettangolo
  • Finisce la linea bianca continua: stesso discorso come sopra
  • Trovi un punto bianco sotto la riga: hai trovato il tuo vertice
Con la stessa tecnica trovi anche gli altri
alessioclemente (19640 points)
19 67 153
by (19.6k points)
Perdonami se dico una cavolata, quindi dal vertice in alto a sinistra, se voglio trovare il vertice a destra, continuo a scorrere e controllare ogni volta se il pixel sotto è bianco, e se lo trovo, ho trovato il vertice?
Xriuk (13590 points)
8 24 116
by (13.6k points)
Scorri e intanto controlli che i pixel della linea siano tutti bianchi (altrimenti non hai una linea) e inoltre controlli se il pixel sotto è bianco, se sì hai trovato un vertice
alessioclemente (19640 points)
19 67 153
by (19.6k points)
Grazie mille!