Oppure

Loading
04/12/10 12:55
a_butta
Salve a tutti.
Vorrei portare il sistema cartesiano che utilizza la libreria Graphics da quello di default:
_ _ _ _ _ _ _ _ _ _ > X
|
|
|
|
|
Y

a quello che solitamente si usa in matematica (considerando però solo il primo quadrante):

Y
^
|
|
|
|
|
|_______________> X

Purtroppo, attraverso una traslazione e una rotazione, sono riuscito ad ottenere sì quest'ultima conformazione, ma con la X e la Y scambiate.
E' possibile effettuare una sorta di ribaltamento? Come si può risolvere?

Grazie in anticipo!
Ultima modifica effettuata da a_butta 04/12/10 12:59
aaa
05/12/10 13:21
Il Totem
Y = PictureBox.Height - y + y0
y è lo spostamento rispetto al vertice superiore sinistro del controllo (ossia la coordinata y di default). y0 è la distanza dell'origine dal bordo inferiore del controllo.
aaa
05/12/10 16:14
a_butta
Postato originariamente da Il Totem:

Y = PictureBox.Height - y + y0
y è lo spostamento rispetto al vertice superiore sinistro del controllo (ossia la coordinata y di default). y0 è la distanza dell'origine dal bordo inferiore del controllo.


Grazie per la risposta. Però quello che volevo fare io (in effetti non mi sono espresso bene), non è tanto impostare la mia Y di volta in volta in base al sistema che sto utilizzando. Io vorrei impostare la matrice degli assi su cui lavora la libreria nel modo che ho detto, di modo che ogni volta che io devo rappresentare una funzione come Y=2X+3 essa mi viene rappresentata tale senza dover operare trasformazioni sulle Y e sulle X... mi sono spiegato?
aaa
06/12/10 8:28
Il Totem
Beh, se vuoi rappresentare il sistema con le matrici diventa:
p è l'altezza della picturebox
|X| = |1  0||x| + | 0  |
|Y|   |0 -1||y|   |p+y0|

Se leggi questa pagina di documentazione:
msdn.microsoft.com/en-us/library/…
vedrai come impostare la matrice di trasformazione:
1 0  0
0 -1 0
0 (p+y0) 1
Ultima modifica effettuata da Il Totem 06/12/10 8:30
aaa