joe
Advanced Member >PLATINUM PLUS<
In questo esempio si costruisce un goniometro,
utilizzando le capacità grafiche di cui avevo fatto cenno.
Le stesse che sono state proposte da Mike e da Ilegend.
Tuttavia per la comprensione di quanto contiene questo script,
è richiesta, la conoscenza, della trigonometria, della programmazione e della grafica.
Cioè di cosa sia il radiante, il PiGreco, Seno, Coseno la formula del cerchio
e la comprensione degli offset necessari per evitare che
la figura disegnata non rimanga nella pagina.
Tutto questo non lo si può spiegare in quattro parole (anche se lo script è commentato)
perché esso si compone di argomenti che in genere sono trattati, negli istituti tecnici,
nel corso di più anni scolastici.
PS: Ringrazio Salvo sempre presente lettore attento e ...
Luigi per gli strumenti potentissimi che ha reso disponibili in Spaziometria.
utilizzando le capacità grafiche di cui avevo fatto cenno.
Le stesse che sono state proposte da Mike e da Ilegend.
Tuttavia per la comprensione di quanto contiene questo script,
è richiesta, la conoscenza, della trigonometria, della programmazione e della grafica.
Cioè di cosa sia il radiante, il PiGreco, Seno, Coseno la formula del cerchio
e la comprensione degli offset necessari per evitare che
la figura disegnata non rimanga nella pagina.
Tutto questo non lo si può spiegare in quattro parole (anche se lo script è commentato)
perché esso si compone di argomenti che in genere sono trattati, negli istituti tecnici,
nel corso di più anni scolastici.
Codice:
Option Explicit
Dim aPos(360,2) ' memorizza le coordinate relative ai 360 gradi serve per poter disegnare le corde
Sub Main
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Bas,Altezza ' dimensioni area disegno
Dim Angolo ' gestisce il ciclo per disegnare il cerchio
Dim pi ' pigreco
Dim x1,y1,x2,y2 ' coordinate generiche pr i segmenti
Dim cLung ' distanza per stampare i gradi
Dim k ' ciclo generico
cLung = 2
pi = 22/7
Bas = 200
Altezza = 200
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Bas,Altezza,Bas,Altezza)
' calcolo il centro del cerchio
cX = Bas / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,3)
Call PicRiempi(cX,cY,vbRed)
' ciclo per disegnare i semiraggi
For Angolo = 0 To 360
' calcolo cordinate per il segmento raggio
x1 = cX +((nRaggio) * Cos(- Angolo *(pi / 180)))
y1 = cY +((nRaggio) * Sin(- Angolo *(pi / 180)))
' memorizzo nell'array globale le coordinate appena calcolate
' cosi potranno essere riusate per disegnare le corde
aPos(Angolo,1) = x1
aPos(Angolo,2) = y1
If Angolo Mod 5 = 0 Then
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
If Angolo <> 0 Then
x2 = cX +((nRaggio + cLung*3) * Cos(- Angolo *(pi / 180)))
y2 = cY +((nRaggio + cLung*3) * Sin(- Angolo *(pi / 180)))
Call PicLinea(x1,y1,x2,y2)
x2 = cX +((nRaggio + cLung*4) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung*4) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,Angolo,Angolo)
End If
Else
' disegno il semiraggio
x2 = cX +((nRaggio + cLung) * Cos(- Angolo *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(- Angolo *(pi / 180)))
Call PicLinea(x1,y1,x2,y2)
End If
Next
' come esempio disegno un poligono di lato 20
For k = 0 To 340 Step 20
Call DisegnaCorda(k,k + 20,vbRed)
Next
' mostro la figura in output
Call PicEsegui
End Sub
Sub DisegnaCorda(p1,p2,colore)
' p1 e p2 sono i gradi a cui si riferiscono inizio e fine della corda
'Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
End Sub
PS: Ringrazio Salvo sempre presente lettore attento e ...
Luigi per gli strumenti potentissimi che ha reso disponibili in Spaziometria.
Ultima modifica: