Ho un'applicazione che costruisce immagini casuali in base a vincoli. Diversi pixel colorati vengono selezionati in modo casuale e inseriti in una griglia che soddisfa tutti i vincoli. Ad esempio (semplificando), potrebbe esserci un vincolo che dice se un pixel blu o verde è a (0, -1), e i pixel rossi sono a (-1, -1) e (-1, 0), quindi posizionando un pixel bianco è proibito. Queste coordinate sono vettori dall'attuale posizione di posizionamento (cioè il suo vicinato).Struttura dati per riconoscimento pattern basato su pixel
In questo momento sto memorizzando i vincoli in un array e scorrendo attraverso di essi, controllando se ciascuno è applicabile o meno. Devo farlo per ogni pixel che inserisco nella griglia. Quindi la performance soffre quando vengono aggiunti altri vincoli. Inoltre, è possibile che due vincoli siano in conflitto ma non è facile controllarli.
Sto pensando che una struttura di dati di tipo grafico (albero?) Potrebbe essere un modo per archiviare tutti i vincoli in modo tale da poter determinare rapidamente dal vicinato dei pixel i vincoli (se esistenti) applicabili. Ma non riesco a capire come fare funzionare una simile struttura, dato che una singola coordinata può contenere più colori e come legare un insieme di coordinate/colori per impostare colori di pixel proibiti. Qualche idea?
Grazie! Questo sembra la giusta direzione da perseguire. Non ho mai sentito parlare di tagli di grafici prima. – jasonm76