2015-07-19 11 views
5

Come probabilmente sapete, in C#, l'origine (0,0) di un piano è l'angolo in alto a sinistra. Andare a destra e/o sotto è considerato come +, mentre andando a sinistra e/o su è -. Opposto a questo è il normale sistema di comunicazione matematica:Perché il software utilizza spesso un sistema di coordinate inverse rispetto al normale sistema di coordinate matematiche?

(0,0) = metà del piano, in salita/destra = +, in basso/a sinistra = -.

È un po 'contro-intuitivo e può essere fastidioso a volte, dal momento che siamo abituati (per anni) all'uso delle normali corde matematiche, e bisogna ricalcolare anche le corde.

Si tratta di un difetto di progettazione fondamentale? E ti ci abitui dopo un po '? E quali altre lingue usano un diverso sistema di coord come C#?

+0

tutti i sistemi di coordinate grafiche computer hanno l'angolo in alto a sinistra come (0, 0), a meno che non ci siano alcuni sistemi strani che non conosco –

+0

In OpenGL l'origine è in basso a sinistra – samgak

+0

@samgak: sei sicuro che non lo sia nel mezzo? –

risposta

8

Non è C# ma il display che utilizza un sistema di coordinate inverse, questo viene dai giorni indietro quando il display è stato disegnato utilizzando un CRT e l'immagine è stata disegnata dall'alto verso il basso, da sinistra a destra. Questo è il motivo per cui l'OS del sistema di coordinate corrisponde a quello.

Lingue come C# stanno semplicemente avvolgendo l'API del SO sottostante ed è per questo che lo usa anche C#.

+0

Ho avuto la stessa risposta quasi parola per parola, ma tu mi hai battuto su di esso :) – DavidG

+0

I CRT potevano essere trascinati dal basso verso l'alto altrettanto facilmente - l'origine del sistema di numerazione dall'alto verso il basso sono numeri di linea su una pagina di testo. –

+0

@BenVoigt Forse, forse no. Avevo l'impressione che fosse perché VGA definiva il suo flusso di dati come top-down. –

1

Il piano del grafico matematico è una cosa virtuale, che si espande in tutte le direzioni senza limiti.

Lo schermo è una cosa reale , che non può davvero espandersi del tutto.

invece si usa il concetto di scorrimento e siamo utilizzato per farlo iniziando da puntare verso il basso.

Quindi, concettualmente, i sistemi grafici utilizzano tutti lo stesso sistema di un testo (da sinistra a destra, &, testo in alto o pagina in un libro. Si tratta di come si scorre per espandere/avanzare l'area di visualizzazione.

Ma è possibile essere definito in qualsiasi altro modo; dopotutto, ad es. le coordinate negative hanno senso in contrapposizione a un numero di riga negativo.

0

Se non ti piace il sistema di coordinate sullo schermo, puoi creare metodi di wrapper per ri-mappare le coordinate come preferisci.

Problemi correlati