2015-11-19 25 views
10

Sto usando PyGame da un po 'e ho dovuto fare trasformazioni di coordinate per cambiare il normale sistema di coordinate usato in matematica (con la sua origine nell'angolo in basso a sinistra) al sistema di coordinate PyGame (con la sua origine al Angolo in alto a sinistra). Ho trovato this post molto utile per questo.Perché il sistema di coordinate PyGame ha la sua origine nell'angolo in alto a sinistra?

Ma mi chiedo, perché PyGame utilizza questo strano sistema di coordinate?

+3

La tua domanda è probabilmente migliore su http://gamedev.stackexchange.com/ :) –

+0

@IbrahimApachi, basato sulla risposta di Steve314 Immagino che questo post sia correlato alla grafica computerizzata in generale, non solo allo sviluppo del gioco. .. – jessag

risposta

9

Non è solo PyGame, è una vecchia convenzione per i display grafici. Molte API consentono di eseguire l'override e scegliere la propria convenzione, ma anche in questo caso, eseguono il mapping sulla convenzione in alto a sinistra in background.

L'origine della convenzione è facile da vedere per i vecchi display CRT. La scansione raster per ciascun fotogramma procedeva dall'alto verso il basso, con ogni riga scansionata da sinistra a destra. Poiché la scansione è stata eseguita in questo modo, il segnale è stato inviato in questo modo e il buffer di pixel in memoria è stato organizzato in questo modo per consentire all'hardware di implementare una scansione lineare della memoria relativamente semplice ed efficiente per ciascun frame.

Con display LCD e altre tecnologie di visualizzazione più recenti, sono abbastanza sicuro che la convenzione è solo per ragioni storiche - l'eredità di una decisione presumibilmente arbitraria ad un certo punto su come il raster deve eseguire la scansione di una foto per segnali TV e CRT molti decenni fa.

Problemi correlati