Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale

Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale (http://forum.roboitalia.com/index.php)
-   P. in Visual Basic (http://forum.roboitalia.com/forumdisplay.php?f=29)
-   -   Come realizzare un tachimetro a lancetta con VB (http://forum.roboitalia.com/showthread.php?t=6793)

mb72 20-06-2010 10.34.13

Come realizzare un tachimetro a lancetta con VB
 
Ciao a tutti.....

Vorrei realizzare un tachimetro a lancetta con VB.

Usa cosa semplice (tanto per prendere un po di cinfidenza con la grafica e seriale RS232).

2 PC collegati con cavo seriale cross.

Ogni volta che premo un button sul Pc2 viene inviato uno step, e sul PC1 dopo aver ricevuto il cmd, la lancetta deve spostarsi in su.. o giu' a seconda dello step positivo o negativo.

Per la parte seriale nn ho problemi, ma per la parte grafica nn so propio dove partire!!!!!!!

Chi mi illumina un po??????

marnic 20-06-2010 11.21.37

Credo che ci siano degli oggetti giÓ pronti che vanno dalla barra di avanzamento al tachimetro, in questo basta che vari il valore della proprietÓ "value" e tutto funziona. Diverso se te la vuoi costruire da solo, in quel caso devi definire un oggetto grafico nel quale andare a disegnare linee punti ecc.

mb72 20-06-2010 11.26.08

Citazione:

Orginalmente inviato da marnic (Messaggio 45318)
Credo che ci siano degli oggetti giÓ pronti che vanno dalla barra di avanzamento al tachimetro, in questo basta che vari il valore della proprietÓ "value" e tutto funziona. Diverso se te la vuoi costruire da solo, in quel caso devi definire un oggetto grafico nel quale andare a disegnare linee punti ecc.


Sono interessato al secondo caso, ovvero avere una lancetta cha compie una escursione di 180░.....pero' nn ho idea da dove partire.....

thanks!

max_robot 20-06-2010 11.39.00

Non Ŕ niente di complicato, cerca su google codice giÓ pronto per realizzare un orologio in visual basic, il concetto Ŕ lo stesso!
Devi creare un oggetto su cui andrai ad aggiornare in continuazione la posizione di una linea (lancetta) in base ai dati ricevuti.

Io ho il codice per creare l'orologio ma Ŕ troppo lungo per inserirlo qui, e gli allegati non funzionano. Comunque con una ricerca dovresti trovarlo.

Di seguito ti inserisco l'evento Paint che effettua l'aggiornamento del disegno delle lancette in base all'orario e all'angolo che dovranno assumere sul quadrante:

Codice:

Private Sub PBClock_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) _
    Handles PBClock.Paint

        Dim g As Graphics = e.Graphics

        'lancetta dei secondi
        g.DrawLine(Pens.Black, puntoSecondi2.X, puntoSecondi2.Y, puntoSecondi1.X, puntoSecondi1.Y)

        'lancetta dei minuti
        g.DrawLine(penna, puntoMinuti2.X, puntoMinuti2.Y, puntoMinuti1.X, puntoMinuti1.Y)

        'lancetta delle ore
        g.DrawLine(penna, puntoOre2.X, puntoOre2.Y, puntoOre1.X, puntoOre1.Y)

    End Sub


Con DrawLine ovviamente disegni la linea-lancetta con un determinato stile, un punto di parteza, uno di arrivo (coordinate x-y)

Saluti, Max...

mb72 20-06-2010 15.59.54

Ho trovato alcuni esempi navigando....

Altro quesito.....

Per abbellire il programma ho aggiunto al Form principale dei frame.

E' possiblie disegnare sui frame???
Ho provato, ma nn visualizzo nulla!!

max_robot 20-06-2010 18.49.34

Citazione:

E' possiblie disegnare sui frame???
Ho provato, ma nn visualizzo nulla!!
Si Ŕ possibile, basta che imposti l'immagine come sfondo del controllo su cui andrai a disegnare la linea, in genere si usa un Panel o una PictureBox aggiunto al Form principale.

Selezioni dalla casella Strumenti il Panel, lo trascini sul form, selezioni il Panel e vai alla finestra proprietÓ, da lý clicchi su BackGroundim e scegli l'immagine che vuoi inserire come sfondo, tutto questo puoi farlo anche direttamente da codice con un paio di comandi aggiunti in fase di Caricamento del form. Per disegnare sull'oggetto poi basta usare il metodo che ti ho descritto sopra.

Dubbi? ;)

mb72 20-06-2010 20.58.15

thanks!!!

stasera...ooppss stanotte provo!! se ho problemi rompo ancora le scatole ::))))))))


Tutti gli orari sono GMT. Adesso sono le: 05.28.45.

Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.