Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Trovare Cordinate Immagine Zummata
Forum - C# / VB.NET - Trovare Cordinate Immagine Zummata

Avatar
Federico1976 (Normal User)
Rookie


Messaggi: 42
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 15:48
Martedì, 06/07/2010
Ciao in un programma di grafica e disegno ho inserito nell'evento paint
il disegno dell'immagine in questione e aplico lo zoom
in questo modo
Codice sorgente - presumibilmente C# / VB.NET

  1. _width = CInt((Me.Width * m_zoom))'larghezza del controlo
  2.          _height = CInt((Me.Height * m_zoom))
  3.        'x e y le uso per disegnare limmagine a centro del controllo se l'immagine    
  4.        ' è piu piccola
  5.          g.DrawImage(m_image, x, y, _width, _height)'disegno l'immagine o la parte


Vorrei sapere comme si fa la proporsione per disegnare una figura  avendo le coordinate client del controllo
cerco di spiegare meglio
io ho la mia immagine visualizata con l'effetto zoom pero le coordinate che ottengo dal controllo non sono quelle reali dell'immagine zummata  come faccio a convertirle.

Ringrazio Anticipatamente


Bisogna vivere come si pensa,altrimenti si finirà per pensare a come si è vissuto.
P.  Bourget
L'unica differenza tra le persone sta nella quantità di pazia che hanno.
Antonio Bannò
Un mano tesa, nel vuoto del bisogno, può arrivare a toccare l'anima
PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 18:04
Martedì, 06/07/2010
se hai le coordinate di un punto sull'immagine zoomata per trovare quelle dell'immagine originale basta che dividi le coordinate conosciute per il fattore di zoom
Codice sorgente - presumibilmente Plain Text

  1. point=new point(ZoomedPoint.x/zoomfactorX,ZoomedPoint.y/zoomefactorY)



se invece devi trovare le coordinate del punto zoomato conoscendo quelle del punto originario devi moltiplicare
Codice sorgente - presumibilmente Plain Text

  1. zoomedpoint=new point(point.x*zoomfactorX,point.y*zoomfactorY)



ovviamente se calcoli i fattori di zoom in percentuale dovrai dividerli per 100, se ad esempio vuoi fare uno zoom del 200% il fattore di zoom sarà 200/100=2.

spero di nn aver detto una fila di cavolate XD

PM Quote
Avatar
Federico1976 (Normal User)
Rookie


Messaggi: 42
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 18:59
Martedì, 06/07/2010


Ti ringrazio tanto :hail: ora provo

Ultima modifica effettuata da Federico1976 il 06/07/2010 alle 19:29


Bisogna vivere come si pensa,altrimenti si finirà per pensare a come si è vissuto.
P.  Bourget
L'unica differenza tra le persone sta nella quantità di pazia che hanno.
Antonio Bannò
Un mano tesa, nel vuoto del bisogno, può arrivare a toccare l'anima
PM Quote
Avatar
Federico1976 (Normal User)
Rookie


Messaggi: 42
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 19:41
Martedì, 06/07/2010
Ancora non mi torna cosa sto sbagliando ho fatto come ai detto tu

r = New Rectangle(((curX / m_zoom) + xScrol), ((curY / m_zoom) + yScrol), diffX, diffY)

curX curY 'variabili di partenza

yScrol xScrol' scorrimento del controllo form imposto la proprieta  Me.AutoScrollMinSize  sull'immagine zummata

Me.AutoScrollMinSize = New Size(CInt((_width * m_zoom)), CInt((_height * m_zoom)))


Bisogna vivere come si pensa,altrimenti si finirà per pensare a come si è vissuto.
P.  Bourget
L'unica differenza tra le persone sta nella quantità di pazia che hanno.
Antonio Bannò
Un mano tesa, nel vuoto del bisogno, può arrivare a toccare l'anima
PM Quote