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

Do you need help?

dubbio sulla richiesta di ordinare i rettangoli

S
Simone99_ (1180 points)
22 50 60
in HW6 obbligatorio by (1.2k points)
buon pomeriggio a tutti,

non riesco a capire alla base cosa voglio dire ordinare i rettangoli, vengono proposte delle proprietà che questi triangoli hanno, ma che cosa vuol dire "in modo che la sequenza di operazioni di disegno riproduca fedelmente l'immagine originale", qual è il criterio praticamente e cosa voglio ottenere per dire che gli n rettangoli sono ordinati?

inoltre non mi è chiara la proprietà "la sequenza è unica (esiste una sola sovrapposizione tra rettangoli che li ordina)"

grazie mille in anticipo

2 Answers

twgever (17470 points)
8 29 105
by (17.5k points)
reshown by
Teoricamente, l'ordine significa in quale ordine vengono disegnati i rettangoli, considerando che un rettangolo nuovo sovrascrive tutti i pixel che trova. se guardi le immagini di esempio diventa molto più chiaro. Se l'immagine ha il quadrato rosso sopra quello blu, tu dovrai mettere nella lista prima quello disegnato per primo, e poi quello disegnato per secondo, quindi prima quello blu, e poi quello rosso.
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
ahh okay quindi il criterio dell'ordinamento è semplicemente ordinare l'immagine (quindi modificare image_filename  esistente(corregimi se sbaglio) ) semplicemente in base al rettangolo disegnato per primo e lo capiamo diciamo dalla "profondità" + le altre proprietà elencate  , giusto?non mi pare venga fatta richiesta di creare una nuova immagine modificata. Però scusami, nell' esempio che mi hai fatto è il quadrato rosso ad essere scritto prima del blu , in quanto quello blu si sovrappone alla cornice del rosso ad un certo punto, o è il contrario?
twgever (17470 points)
8 29 105
by (17.5k points)
mi sa che piuttosto che modificare l'immmagine, ne devi creare una nuova (non ne sono sicuro, ma leggendo la traccia dovrebbe essere chiaro), che sulla prima riga ha i valori codificati in RGB del primo rettangolo disegnato, sulla seconda quelli del secondo ecc.

Nell'esempio che ho fatto è quello blu ad essere scritto prima del rosso, perchè prima disegno il blu, poi disegno il rosso, sovrapponendolo al blu, quindi 2 pixel blu diventeranno rossi. Ha senso? è il rosso a sovrapporsi al blu, perchè è stato aggiunto dopo, quindi quello che si sovrappone, è arrivato dopo.
M
Michele13 (1900 points)
7 25 32
by (1.9k points)
e qual è la considerazione che va fatta per fare ciò?
twgever (17470 points)
8 29 105
by (17.5k points)
Credo sia quella la parte difficile, devi trovare un algoritmo che identifichi in che ordine sono stati disegnati i rettangoli.
A
Alerax (870 points)
1 2 5
by (870 points)
Quindi la possibilità che all'interno della stessa immagine ci siano 2 rettangoli dello stesso colore non ci dovrebbe essere vero?
twgever (17470 points)
8 29 105
by (17.5k points)
"potete assumere che:

    - tutti i rettangoli hanno colore diverso"
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
io continuo a non capire, se è vero che stiamo parlando entrambi dell'immagine 5squares.png, se scrivessi prima il blu, e poi ci passerei sopra con il rosso, avrei una sovrapposizione di un pixel blu sul pixel rosso , ma allora perche dici "quindi 2 pixel blu diventeranno rossi"? quali sono questi due pixel blu, inoltre la consegna dice che i lati dei rettangoli diversi non si sovrappongo ma si incrociano, il che fa pensare che nel momento in cui il x incontra il pixel y , non va a sovrapporsi ma " salta" ,  o sbaglio?purtroppo in questo non vedo chiara la consegna
twgever (17470 points)
8 29 105
by (17.5k points)
ma non parlavo dell'immagine, era un esempio a caso. Immagine di avere un quadrato blu e uno rosso, tutto qua lol.
twgever (17470 points)
8 29 105
by (17.5k points)
con "i lati" intende i lati per lungo, è ovvio che se due lati si incrociano, un lato sarà sopra l'altro, non puoi avere un pixel con due colori diversi. Se hai un rettangolo blu, e sopra ci metti un rettangolo rosso, due pixel del rettangolo blu diventeranno rossi, perchè due rettangoli si possono incrociare solo su due o quattro pixel. Immaginala come una cosa fisica, se hai un quadrato rosso e un quadrato blu, e poggi quello blu, e sopra ci metti quello rosso, se guardi da sopra quale vedi per intero? il rosso, perchè quello blu è coperto in due punti dal rosso. E in quale ordine li abbiamo messi? prima il blu, poi il rosso.
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
ahh okay non so perchè pensavo ti stessi rifacendo all'esempio e non capivo, sì comunque chiaro, così ha senso , ecco quello che non mi torna è che cosa si intende e  cosa deve fare esattamente la funzione nel punto " individua gli N rettangoli e li ordina" , non viene specificato in che modo io debba dire di averli ordinati ( potrei creare una lista di stringhe scrivnedo i colori ordinati , potrei indicare le coordinate degli angoli dei rettangoli ordinati ecc),  quale dovrebbe essere l'output ?
twgever (17470 points)
8 29 105
by (17.5k points)
nel testo mi sa che ci sta scritto tipo "ordinati in maniera tale che, seguendo l'ordine, si riforma l'immagine" o qualcosa del genere. Significa che seguendo l'ordine che troverà il tuo programma, dovresti arrivare a ricostruire l'immagine di partenza, con le stesse sovrapposizioni.
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
ahhh ecco dov'è che non capivo,  in pratica nell 'immagine "encoded" ci saranno tutti i dati dei triangoli, dall'alto verso il basso a mo di riga , e ordinati per "ordine di sovrapposizione"  , decodificati appunto coi pixel, okay per ora sembra essere chiaro, intanto ti ringrazio per il tempo speso
gioele.l (740 points)
2 2 5
by (740 points)
In pratica i rettangoli sono sovrapposti uno sull'altro, i rettangoli disegnati prima possono essere parzialmente coperti da quelli disegnati dopo. Dovrai creare una sequenza, contenente le informazioni per creare i rettangoli, ordinata in base all'ordine in cui sono stati disegnati.
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
grazie, quindi per esempio in 5 -squares sarebbe rosso-verde-blu ecc?