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

Do you need help?

Intersezione Es2

DRDLCN (8070 points)
28 68 104
in Es2 by (8.1k points)
recategorized by
Come si potrebbe rappresentare un intersezione tra 2 rettangoli a livello grafico?
612 views

2 Answers

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Non esiste l'intersezione, esiste solo la sovrapposizione. Un rettangolo sta dietro e l'altro lo copre. Devi solo capire quale sta dietro e quale lo copre usando le regole della luminosità e della x minore
DRDLCN (8070 points)
28 68 104
by (8.1k points)
io ho una lista di tuple ordinate per luminosita' minore e x minore per luminosita uguale.

c'è un problema pero'

http://prntscr.com/lss4gb

Come vedi l'immagine è diversa dall'immagine del test.

il primo rettangolo rosso viene coperto dal rettangolo verde perchè nella lista che creo sono uno dopo l'altro...

dove sbaglio?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
perché in realtà l'ordinamento non è così semplice. facendo così, potresti avere un rettangolo che inizia a x=3 e uno che inizia a x=4, e quello che inizia a x=4 ricoprirebbe quello che inizia a x=3 per tutte le x da 4 in poi. nel momento in cui disegni devi fare in modo di disegnare prima quelli che stanno a destra, che verranno poi ricoperti eventualmente da quelli a sinistra, e questo puoi ottenerlo modificando di pochissimo il tuo criterio di ordinamento
DRDLCN (8070 points)
28 68 104
by (8.1k points)
hai ragione!!!!

mi basta ribaltare la lista quindi?

e iterare dall'ultmo al primo , pero' cosi facendo non disegno prima quelli con luminosita' maggiore? che poi verrebbero coperti da quelli a luminosita' minore?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
infatti non ho detto di ribaltare la lista, ho detto di cambiare di pochissimo un criterio di ordinamento
DRDLCN (8070 points)
28 68 104
by (8.1k points)
a parita' di lum potrei prendere le x maggiori cosi partirei da destra
_andrea_ (45670 points)
13 42 297
by (45.7k points)
esatto, solo la x va ribaltata
DRDLCN (8070 points)
28 68 104
by (8.1k points)
mh , pero' non sono sicuro

ora provo
DRDLCN (8070 points)
28 68 104
by (8.1k points)
come si puo fare questo con una lambda? dovrei usare un reverse True ma cosi facendo mi reversa anche la luminosita
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Devi fare in modo che la x sia ordinata in ordine inverso a come la ordini ora. Non so se l'hai fatto, ma è la stessa cosa del secondo esercizio del secondi hw (se l'hai fatto così)
Xriuk (13590 points)
8 24 116
by (13.6k points)
@DRDLCN con lambda puoi indicare più valori separati da virgole, se ci metti un - davanti inverti l'ordine per quel valore
Xriuk (13590 points)
8 24 116
by (13.6k points)
A che ti serve rappresentare l'intersezione?