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 - [VB.NET] Immagine da ruotare sopra un'altra immagine o_O
Forum - C# / VB.NET - [VB.NET] Immagine da ruotare sopra un'altra immagine o_O

Avatar
DaveDevil (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 21:40
Mercoledì, 06/01/2010
Allora, il titolo può sembrare strano, ma vi spiego subito a cosa mi serve questa cosa e sono sicuro che capirete:

Ho un'immagine di sfondo (bmp) che altro non è che un cerchio nero per ora, ma voglio tenermi la possibilità di personalizzarlo senza toccare il programma)

ho un'altra immagine, detta lancetta (sempre in bmp) che pure questa va personalizzata.

mi interessa la possibilità di sovrapporre la lancetta allo sfondo principale, e fare in modo che questa possa ruotare (non a step di 90 gradi ovviamente)


sono proprio ignorante in materia, ma oltre a questo "tachimetro" mi vengono in mente altre centinaia di cose che potrebbero essermi utile sapendo come fare.

Vi ringrazio sin da ora per l'aiuto!!!

PM Quote
Avatar
balto (Ex-Member)
Rookie


Messaggi: 44
Iscritto: 03/11/2009

Segnala al moderatore
Postato alle 22:57
Mercoledì, 06/01/2010
Bè forse anzicchè usare un'immagine come lancetta, converrebbe utilizzare la classe Graphics, il cui metodo DrawLine può essere molto utile nel tuo caso se insieme ad esso utilizzi un timer: al tick del timer disegni la lancetta in una posizione diversa.


Importante è ricordare, ma più importante è dimenticare.
(Rainer Maria Rilke)
PM Quote
Avatar
DaveDevil (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 23:17
Mercoledì, 06/01/2010
certo così sarebbe più semplice, ma perdo completamente la possibilità di creare le frecce personalizzate!

metti che domani voglio disegnarci un fulmine:D

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:29
Giovedì, 07/01/2010
Il metodo Graphics.RotationTransform(x) esegue una rotazione di x gradi in senso orario (strano eh). Il metodo va posto prima delle operazioni di disegno, ma si applica a tutto ciò che viene disegnato successivamente. Per annullare le trasformazioni, penso che potresti impostare una rotazione di 0 gradi.
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim G As Graphics
  2.  
  3. G.DrawImage(sfondo, ...)
  4. G.RotationTransform(78.0)
  5. G.DrawImage(lancetta, ...)


Può darsi che la trasformazione sia retroattiva, ma di questo non sono sicuro: dovresti fare una prova.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
DaveDevil (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 2:32
Venerdì, 08/01/2010
grazie per il consiglio!

ma come posso fare per tenere su due "piani" diversi lo sfondo e la lancetta?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:04
Sabato, 09/01/2010
Il codice sopra non dovrebbe condizionare lo sfondo... Oppure no? Si ruota anche lo sfondo?


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote