Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: alejandro - 28 Settembre 2014, 00:14:26

Titolo: Bussola elettronica
Inserito da: alejandro - 28 Settembre 2014, 00:14:26
nel programma che ho creato per gestire l'ingresso dati da un sensore magnetico HMC5883L e un pic 16f88 tramite la seriale RS232 vorrei aggiungere una interfaccia grafica tipo una bussola magnetica con tanto di freccia di segnalazione sui punti cardinali.credo che la proprietà DrawingArea potrebbe essere quello che cerco,ma non lo mai usata.come si fa??
non voglio un codice bello e pronto,ma per lo meno quale sono gli eventi e come si usano.grazie in anticipo.
Titolo: Re: Bussola elettronica
Inserito da: vuott - 28 Settembre 2014, 00:39:32
Sicuramente ci sono spezzoni di codice in questo forum: dovresti fare la ricerca.

Nel frattempo puoi anche dare un'occhiata alle pagine della nostra WIKI afferenti alla DrawingArea

http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#DrawingArea
Titolo: Re: Bussola elettronica
Inserito da: alejandro - 28 Settembre 2014, 01:16:44
grazie vuott
sarebbe bastato guardare negli esempi inclusi nel pacchetto installazione di Gambas2(Orologio analogico)  :coder:
Titolo: Re: Bussola elettronica
Inserito da: vuott - 28 Settembre 2014, 01:19:03
Sì, molto c'è anche negli esempi di Gambas.

Non bisogna, poi, mai dimenticare di dare uno sguardo anche negli altri forum.
Titolo: Re: Bussola elettronica
Inserito da: alejandro - 28 Settembre 2014, 19:00:11
bene,gurdando l'esempio del orologio analogico di Gambas2 ho potuto finalmente creare questa interfaccia.nulla di spectaculare,pero funziona.lascio delle imagini ed il code.
Codice: [Seleziona]
SUB PUBLIC Elaboracion_Datos()
.
.
.
.
Contador = CInt(Trim(txbGrados.Text))
Brujula.Refresh
END SUB

PUBLIC SUB Brujula_Draw()
DIM CentroY, CentroX AS Integer
Brujula.Clear
CentroY = Brujula.h / 2
CentroX = Brujula.w / 2
'Crea el cuadrante de la brujula
Draw.FillColor = Color.Black
Draw.FillStyle = Fill.Solid
Draw.Circle(CentroX, CentroY, 193)
'Crea las lineas de divisiòn
Draw.Forecolor = Color.Orange
Draw.LineWidth = 5
Draw.Line(193, 1, 193, 22)
Draw.Line(193, 386, 193, 364)
Draw.Line(1, 193, 22, 193)
Draw.Line(386, 193, 364, 193)
'Calcula la posiciòn
Calculo_posicion(Contador)
END

PUBLIC SUB Calculo_posicion(Grados AS Integer)
DIM X2, Y2 AS Integer
DIM Angulo AS Float
Draw.Forecolor = Color.Yellow
Draw.LineWidth = 5
Angulo = CFloat(Grados) / 360 * 2 * Pi
X2 = 193 + (193 * Sin(Angulo))
Y2 = 193 - (193 * Cos(Angulo))
Draw.Line(193, 193, X2, Y2)
END

PUBLIC SUB rbPunto_Click()
lblNorte.Text = "Norte"
lblOeste.Text = "Oeste"
lblSur.Text = "Sur"
lblEste.Text = "Este"
END

PUBLIC SUB rbGrados_Click()
lblNorte.Text = " 0°"
lblOeste.Text = "90°"
lblSur.Text = " 180°"
lblEste.Text = "270°"
END
niente imagini,non le posso updatare.
Titolo: Re: Bussola elettronica
Inserito da: alejandro - 28 Settembre 2014, 19:02:24
 :-[
Titolo: Re: Bussola elettronica
Inserito da: vuott - 28 Settembre 2014, 19:52:16
Interessante.   :)
Bravo.


Qui il collegamento allo stesso argomento sul forum spagnolo:
http://www.gambas-es.org/viewtopic.php?f=5&t=4150
Titolo: Re: Bussola elettronica
Inserito da: alejandro - 29 Settembre 2014, 22:59:30
Soy siempre yo.
Sono sempre io. :ok:

Il tempo di finire di modificare il robot e posto il video con la bussola in funzione.