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

Do you need help?

[HW6req] Come Trovare Il Vertice Opposto

MRinaudo (3660 points)
22 40 50
in HW6 obbligatorio by (3.7k points)
closed by

Ciao a tutti,

mi sto trovando in difficoltà nel capire come ottenere il vertice opposto di ciascun rettangolo/quadrato, cioè quello che si trova in basso a destra.

Dovrei scorrere a ritroso l'intera immagine, partendo dall'ultimo pixel in basso a destra, o dovrei ruotare l'immagine di 180 gradi verso destra, e scorrerla normalmente ?

Qual'è, secondo voi, l'approccio migliore ?

Si accettano altre idee o consigli smiley.

Grazie.

Saluti.

421 views
closed with the note: Risolto.

3 Answers

Best answer
twgever (17470 points)
8 29 105
by (17.5k points)
selected by
Direi che l'approccio migliore è di sfruttare reverse o reversed per analizzare l'immagine al contrario. Molto meglio rispetto a doversi salvare L'INTERA immagine di nuovo. salvare l'immagine ti porterebbe via una quantità di tempo che non ti puoi permettere, mentre scorrerla al contrario, nonostante possa darti qualche mal di testa, ti fa risparmiare un sacco di tempo.
9
9Andrea9 (12340 points)
12 32 56
by (12.3k points)
esatto, dovresti usare reversed ma fai attenzione nelle condizioni che imponi per la ricerca dell'angolo in basso a destra
s
susannacifani (4000 points)
2 21 53
by (4.0k points)
Io personalmente eviterei di scorrere l’intera immagine due volte. Non so che metodo abbia utilizzato tu, ma se ci pensi, il primo pixel che incontri di ogni colore corrisponde al vertice in alto a sinistra del rettangolo, mentre l’ultimo che incontri (sempre di quel colore) è il vertice in basso a destra del rettangolo. Fin qua quindi puoi trovare vertice altro sx che ha le coordinate x1, x2 e vertice basso dx che ha le coordinate y1, y2. Se vai a vedere, il vertice in alto a destra ha coordinate x1, y2 e quello in basso a sinistra ha coordinate x2, y1. Ovviamente x è la riga e y è la colonna. Io almeno sto lavorando prendendo questa idea come spunto, spero di esserti stata utile :)
s
stefanocali (1230 points)
1 2 9
by (1.2k points)
Anche io ho fatto l’identica cosa, solamente che riesco ad ottenere tutti i vertici meno quello in basso a destra , che poi mi calcolo manualmente. Credo che sia un buon ragionamento, si evitano diversi cicli, e si ottiene tutto in un unico ciclo
s
susannacifani (4000 points)
2 21 53
by (4.0k points)
Esatto, ottenendo tutto in un unico ciclo si risparmia anche tempo. Comunque come mai non riesci ad ottenere il vertice in basso a destra? Io sono riuscita ad ottenere il vertice in alto a sinistra e in basso a destra andando a vedere il primo e ultimo pixel incontrati, ora mi manca trovare un modo per aggiungere anche gli altri due vertici (secondo il ragionamento che ti ho scritto) per trovare poi il perimetro.
s
stefanocali (1230 points)
1 2 9
by (1.2k points)
Effettivamente potrei anche trovarlo durante il loop, comunque io trovo prima il px al vertice in alto a sinistra, poi quello il basso a sinistra, poi quello in alto a destra, e l’ultimo neanche lo guardo perché comunque so che sono rettangoli, e con un semplice calcolo posso ottenerlo, forse però inserendolo appena lo trovo eviterei un calcolo e ridurrei la velocità..
s
susannacifani (4000 points)
2 21 53
by (4.0k points)
Non so bene come tu abbia fatto, ma il pixel in alto a sx e il pixel in basso a dx li trovi prendendo il primo e l'ultimo pixel colorato che incontri, non capisco come tu abbia fatto. Nel senso che forse ti sei solo complicato la vita, ma non conoscendo il codice non posso dirlo con certezza...