Trasformazione di coordinate: dal "mondo reale" al "mondo virtuale"
Per riportare graficamente delle rappresentazioni statistiche, Il primo ostacolo che si deve superare per sfruttare a pieno le potenzialità della libreria GDI+ però è riuscire a trasformare le coordinate del “mondo reale”, quindi le coordinate del piano cartesiano, in coordinate del “mondo virtuale”, quindi i pixel. In particolare, si vuole riprodurre la finestra reale all’interno del rettangolo virtuale e si identificano, quindi, le caratteristiche della finestra reale (come
minY, maxY, minX, maxX) e quelle del rettangolo (ovvero x, y, w, h). Nel caso dell’asse delle ascisse, quindi delle coordinate x, il ragionamento è semplice: posto w la larghezza del rettangolo virtuale e Left lo scostamento del rettangolo dal lato sinistro, si ottiene la seguente trasformazione:Invece per le coordinate y si devono fare delle considerazioni: a differenza del “mondo reale”, nel “mondo virtuale” l’origine degli assi è il vertice in alto a sinistra. Se non si tenesse conto di questa differenza, si rischierebbe di creare un grafico capovolto; per questo motivo si deve considerare il complemento all’altezza quando si crea la formula per il calcolo delle coordinate y nel mondo virtuale.
dove H indica l’altezza del rettangolo virtuale e Top lo scostamento del rettangolo dall’alto.
In seguito viene riportato un esempio di codice VB.net con cui si effettua questo tipo di trasformazioni:
Function Xreale_To_Xvirtuale(xReale As Double, minX As Double, maxX As Double, left As Integer, width As Integer) As Integer Return CInt(left + width * (xReale - minX) / (maxX - minX))End FunctionFunction Yreale_To_Yvirtuale(yReale As Double, minY As Double, maxY As Double, top As Integer, heigth As Integer) As Integer Return CInt(top + heigth - heigth * (yReale - minY) / (maxY - minY))End Function
Commenti
Posta un commento