Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
Option Explicit
Class clsCerchioCiclometrico
Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri
Private CollCorde
Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde)
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Base,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
Dim n
Dim z
Call PicClear
Set CollCorde = GetNewCollection
cLung = 2
pi = 3.14
Base = 150
Altezza = 150
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Base,Altezza,Base,Altezza)
' calcolo il centro del cerchio
cX = Base / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,nRaggio)
Angolo = 360
n = 20 '<---------------------------------
' ciclo per disegnare i semiraggi
For z = 90 To 450 Step 36 '<----------------------------------
Angolo = FuoriX(z,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
n = n - 1
aPos(n,1) = x1
aPos(n,2) = y1
If n Mod 10 = 0 Or n Mod 10 = 1 Or n Mod 10 = 2 Or n Mod 10 = 3 Or n Mod 10 = 4 Or n Mod 10 = 5 Or n Mod 10 = 6 Or n Mod 10 = 7 Or n Mod 10 = 8 Or n Mod 10 = 9 Then '<--------------------------
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
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,n,Angolo)
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)
x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
End If
If n = 10 Then Exit For
Next
Call DisegnaFigura(aNumeri)
Call DisegnaDistanze(aCorde)
' mostro la figura in output
Call PicEsegui
End Sub
Private Sub DisegnaFigura(aNum)
Dim k
For k = 1 To UBound(aNum)
Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False)
Next
End Sub
Private Sub DisegnaDistanze(aCorde)
Dim k
For k = 1 To UBound(aCorde)
Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True)
Next
End Sub
Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt)
Dim nX,nY,sDist
' 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)
If AddCorda(p1,p2) Then
If bLineaTratt Then
Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Else
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
End If
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
If bDisegnaDist Then
If aPos(p1,1) > aPos(p2,1) Then
nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1)
Else
nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1)
End If
If aPos(p1,2) > aPos(p2,2)Then
nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2)
Else
nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2)
End If
Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow)
nX = nX - 1.5
nY = nY - 1.5
sDist = Format2(Distanza(p1,p2))
Call PicStampaTesto(nX,nY,sDist)
End If
End If
End Sub
Private Function AddCorda(n1,n2)
Dim sKey
If n1 <= n2 Then
sKey = "k" & Format2(n1) & Format2(n2)
Else
sKey = "k" & Format2(n2) & Format2(n1)
End If
On Error Resume Next
CollCorde.Add sKey,sKey
If Err = 0 Then
AddCorda = True
End If
End Function
End Class
Sub Main
Dim clsCerchio
Dim k,v,x,qt
Dim aCorde
'v = InputBox("Quale ruota vuoi controllare?",,0)
'x = InputBox("Quante estrazioni vuoi controllare?",,0)
'For v = 1 To 10
' prendo i numeri dell'ultima estrazione di bari
' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze
ReDim aNum(0)
qt = ScegliNumeri(aNum)
Call OrdinaMatrice(aNum,1)
qt = UBound(aNum)
' le corde sono le distanze interne e sono
' considerate tutte le coppie di vertici
aCorde = SviluppoIntegrale(aNum,2)
Set clsCerchio = New clsCerchioCiclometrico
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
'Scrivi(DataEstrazione(EstrazioneFin - x)),0,0,1,3,4
'Scrivi
'Scrivi NomeRuota(v),0,0,1,3,4
Scrivi StringaNumeri(aNum)
' II° Esempio
' dissegno una figura arbitraria
'Next
End Sub
Option Explicit
Class clsCerchioCiclometrico
Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri
Private CollCorde
Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde)
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Base,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
Dim n
Dim z
Call PicClear
Set CollCorde = GetNewCollection
cLung = 2
pi = 3.14
Base = 150
Altezza = 150
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Base,Altezza,Base,Altezza)
' calcolo il centro del cerchio
cX = Base / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,nRaggio)
Angolo = 360
n = 30 '<---------------------------------
' ciclo per disegnare i semiraggi
For z = 90 To 450 Step 36 '<----------------------------------
Angolo = FuoriX(z,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
n = n - 1
aPos(n,1) = x1
aPos(n,2) = y1
If n Mod 10 = 0 Or n Mod 10 = 1 Or n Mod 10 = 2 Or n Mod 10 = 3 Or n Mod 10 = 4 Or n Mod 10 = 5 Or n Mod 10 = 6 Or n Mod 10 = 7 Or n Mod 10 = 8 Or n Mod 10 = 9 Then '<--------------------------
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
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,n,Angolo)
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)
x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
End If
If n = 20 Then Exit For
Next
Call DisegnaFigura(aNumeri)
Call DisegnaDistanze(aCorde)
' mostro la figura in output
Call PicEsegui
End Sub
Private Sub DisegnaFigura(aNum)
Dim k
For k = 1 To UBound(aNum)
Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False)
Next
End Sub
Private Sub DisegnaDistanze(aCorde)
Dim k
For k = 1 To UBound(aCorde)
Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True)
Next
End Sub
Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt)
Dim nX,nY,sDist
' 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)
If AddCorda(p1,p2) Then
If bLineaTratt Then
Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Else
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
End If
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
If bDisegnaDist Then
If aPos(p1,1) > aPos(p2,1) Then
nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1)
Else
nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1)
End If
If aPos(p1,2) > aPos(p2,2)Then
nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2)
Else
nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2)
End If
Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow)
nX = nX - 1.5
nY = nY - 1.5
sDist = Format2(Distanza(p1,p2))
Call PicStampaTesto(nX,nY,sDist)
End If
End If
End Sub
Private Function AddCorda(n1,n2)
Dim sKey
If n1 <= n2 Then
sKey = "k" & Format2(n1) & Format2(n2)
Else
sKey = "k" & Format2(n2) & Format2(n1)
End If
On Error Resume Next
CollCorde.Add sKey,sKey
If Err = 0 Then
AddCorda = True
End If
End Function
End Class
Sub Main
Dim clsCerchio
Dim k,v,x,qt
Dim aCorde
'v = InputBox("Quale ruota vuoi controllare?",,0)
'x = InputBox("Quante estrazioni vuoi controllare?",,0)
'For v = 1 To 10
' prendo i numeri dell'ultima estrazione di bari
' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze
ReDim aNum(0)
qt = ScegliNumeri(aNum)
Call OrdinaMatrice(aNum,1)
qt = UBound(aNum)
' le corde sono le distanze interne e sono
' considerate tutte le coppie di vertici
aCorde = SviluppoIntegrale(aNum,2)
Set clsCerchio = New clsCerchioCiclometrico
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
'Scrivi(DataEstrazione(EstrazioneFin - x)),0,0,1,3,4
'Scrivi
'Scrivi NomeRuota(v),0,0,1,3,4
Scrivi StringaNumeri(aNum)
' II° Esempio
' dissegno una figura arbitraria
'Next
End Sub
Ciao Zetrix per oggi hai consigliato di giocare 9.59 ro.to.ve.tt confermi? La precedente milano 3.59 si lascia essendo il 59 ritardatario? Grazie e saluti
Option Explicit
Class clsCerchioCiclometrico
Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri
Private CollCorde
Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde)
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Base,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
Dim n
Dim z
Call PicClear
Set CollCorde = GetNewCollection
cLung = 2.2
pi = 3.14
Base = 150
Altezza = 150
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Base,Altezza,Base,Altezza)
' calcolo il centro del cerchio
cX = Base / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,nRaggio)
Angolo = 360
n = 91
' ciclo per disegnare i semiraggi
For z = 90 To 540 Step 4
Angolo = FuoriX(z,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
n = n - 1
aPos(n,1) = x1
aPos(n,2) = y1
'If n Mod 10 = 0 Then
'If n Mod 3 = 1 Then '-->scrivi numero distanzanziale esempio 10
'If n Mod 3 = 2 Then '-->scrivi numero distanzanziale esempio 10
If n Mod 3 = 0 Then '-->scrivi numero distanzanziale esempio 10
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
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,n,Angolo)
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)
x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
End If
If n = 0 Then Exit For
Next
Call DisegnaFigura(aNumeri)
Call DisegnaDistanze(aCorde)
' mostro la figura in output
Call PicEsegui
End Sub
Private Sub DisegnaFigura(aNum)
Dim k
For k = 1 To UBound(aNum)
Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False)
Next
End Sub
Private Sub DisegnaDistanze(aCorde)
Dim k
For k = 1 To UBound(aCorde)
Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True)
Next
End Sub
Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt)
Dim nX,nY,sDist
' 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)
If AddCorda(p1,p2) Then
If bLineaTratt Then
Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Else
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
End If
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
If bDisegnaDist Then
If aPos(p1,1) > aPos(p2,1) Then
nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1)
Else
nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1)
End If
If aPos(p1,2) > aPos(p2,2)Then
nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2)
Else
nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2)
End If
Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow)
nX = nX - 1.5
nY = nY - 1.5
sDist = Format2(Distanza(p1,p2))
Call PicStampaTesto(nX,nY,sDist)
End If
End If
End Sub
Private Function AddCorda(n1,n2)
Dim sKey
If n1 <= n2 Then
sKey = "k" & Format2(n1) & Format2(n2)
Else
sKey = "k" & Format2(n2) & Format2(n1)
End If
On Error Resume Next
CollCorde.Add sKey,sKey
If Err = 0 Then
AddCorda = True
End If
End Function
End Class
Sub Main
Dim clsCerchio
Dim k,v,x,qt
Dim aCorde
'v = InputBox("Quale ruota vuoi controllare?",,0)
x = InputBox("Quante estrazioni vuoi controllare?",,0)
For v = 1 To 12
If v = 11 Then v = 12 End If ' con numeri
' prendo i numeri dell'ultima estrazione di bari
' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze
ReDim aNum(0)
Call GetArrayNumeriRuota(EstrazioneFin - x,v,aNum)' ---->ruota 1
'qt = ScegliNumeri(aNum)
'Call OrdinaMatrice(aNum,1)
'qt = UBound(aNum)
' le corde sono le distanze interne e sono
' considerate tutte le coppie di vertici
aCorde = SviluppoIntegrale(aNum,2)
Set clsCerchio = New clsCerchioCiclometrico
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
Scrivi DataEstrazione((EstrazioneFin - x),1) & " ",0,0,1,5,4
Scrivi
Scrivi SiglaRuota(v) & " " & StringaNumeri(aNum),0,0,1,5,4
Scrivi
' II° Esempio
' dissegno una figura arbitraria
Next
End Sub
Ciao Zetrix mi da errore qua :Codice:Option Explicit Class clsCerchioCiclometrico Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri Private CollCorde Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde) Dim nRaggio ' raggio ddel cerchio Dim cX,cY ' centro del cerchio x e y Dim Base,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 Dim n Dim z Call PicClear Set CollCorde = GetNewCollection cLung = 2.2 pi = 3.14 Base = 150 Altezza = 150 nRaggio = 60 ' preimposto le dimensioni dell'area Call PicSetDimensioni(Base,Altezza,Base,Altezza) ' calcolo il centro del cerchio cX = Base / 2 cY = Altezza / 2 Call PicCerchio(cX,cY,nRaggio) Angolo = 360 n = 91 ' ciclo per disegnare i semiraggi For z = 90 To 540 Step 4 Angolo = FuoriX(z,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 n = n - 1 aPos(n,1) = x1 aPos(n,2) = y1 'If n Mod 10 = 0 Then 'If n Mod 3 = 1 Then '-->scrivi numero distanzanziale esempio 10 'If n Mod 3 = 2 Then '-->scrivi numero distanzanziale esempio 10 If n Mod 3 = 0 Then '-->scrivi numero distanzanziale esempio 10 ' ogni 5 gradi disegno un semiraggio un po' piu lungo ' e stampo i gradi in corripondenza 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,n,Angolo) 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) x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180))) y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180))) Call PicStampaTestoRT(x2,y2,n,Angolo) End If If n = 0 Then Exit For Next Call DisegnaFigura(aNumeri) Call DisegnaDistanze(aCorde) ' mostro la figura in output Call PicEsegui End Sub Private Sub DisegnaFigura(aNum) Dim k For k = 1 To UBound(aNum) Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False) Next End Sub Private Sub DisegnaDistanze(aCorde) Dim k For k = 1 To UBound(aCorde) Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True) Next End Sub Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt) Dim nX,nY,sDist ' 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) If AddCorda(p1,p2) Then If bLineaTratt Then Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore) Else Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore) End If Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore) Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore) If bDisegnaDist Then If aPos(p1,1) > aPos(p2,1) Then nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1) Else nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1) End If If aPos(p1,2) > aPos(p2,2)Then nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2) Else nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2) End If Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow) nX = nX - 1.5 nY = nY - 1.5 sDist = Format2(Distanza(p1,p2)) Call PicStampaTesto(nX,nY,sDist) End If End If End Sub Private Function AddCorda(n1,n2) Dim sKey If n1 <= n2 Then sKey = "k" & Format2(n1) & Format2(n2) Else sKey = "k" & Format2(n2) & Format2(n1) End If On Error Resume Next CollCorde.Add sKey,sKey If Err = 0 Then AddCorda = True End If End Function End Class Sub Main Dim clsCerchio Dim k,v,x,qt Dim aCorde 'v = InputBox("Quale ruota vuoi controllare?",,0) x = InputBox("Quante estrazioni vuoi controllare?",,0) For v = 1 To 12 If v = 11 Then v = 12 End If ' con numeri ' prendo i numeri dell'ultima estrazione di bari ' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze ReDim aNum(0) Call GetArrayNumeriRuota(EstrazioneFin - x,v,aNum)' ---->ruota 1 'qt = ScegliNumeri(aNum) 'Call OrdinaMatrice(aNum,1) 'qt = UBound(aNum) ' le corde sono le distanze interne e sono ' considerate tutte le coppie di vertici aCorde = SviluppoIntegrale(aNum,2) Set clsCerchio = New clsCerchioCiclometrico Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde) Scrivi DataEstrazione((EstrazioneFin - x),1) & " ",0,0,1,5,4 Scrivi Scrivi SiglaRuota(v) & " " & StringaNumeri(aNum),0,0,1,5,4 Scrivi ' II° Esempio ' dissegno una figura arbitraria Next End Sub
toon Alien di questi script ne ho piu di 200 cento script...
questo script disegna i numeri estratti con il cerchio ciclometrico
con numeri distanziati in tripla figura 3.6.9
se riuscite a modificare lo script potete disegnare anche il cerchio con
numeri distanziati in tripla figura 1.4.7 e in tripla figura 2.5.8
se poi non riuscite a modificare lo script vi metterò gli altri due script..
comunque dovrebbe essere facile..
If n Mod 3 = 1 Then '-->scrivi numeri distanziati in tripla figura 1.4.7
'If n Mod 3 = 2 Then '-->scrivi numeri distanziati in tripla figura 2.5.8
'If n Mod 3 = 0 Then '-->scrivi numeri distanziati in tripla figura 3.6.9
Ciao a tutti Grazie Zetrix per nuovo calcolo "triangolo". Solo che per capire meglio potresti farlo con altra ruota, altri numeri. Perché non capisco proprio bene come ricavi il numero 59 da questo calcolo. Grazie.
Grazie Zetrix, molto utile per ricerche mirate.
Ottimo.. ;-))
Ciao Zetrix mi da errore qua :
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
Option Explicit
Class clsCerchioCiclometrico
Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri
Private CollCorde
Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde)
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Base,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
Dim n
Dim z
Call PicClear
Set CollCorde = GetNewCollection
cLung = 2.2
pi = 3.14
Base = 150
Altezza = 150
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Base,Altezza,Base,Altezza)
' calcolo il centro del cerchio
cX = Base / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,nRaggio)
Angolo = 360
n = 91
' ciclo per disegnare i semiraggi
For z = 90 To 540 Step 4
Angolo = FuoriX(z,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
n = n - 1
aPos(n,1) = x1
aPos(n,2) = y1
'If n Mod 10 = 0 Then
If n Mod 7 = 6 Then '-->scrivi numeri distanziati in sequenza(7)
'If n Mod 3 = 2 Then '-->scrivi numero distanzanziale esempio 10
'If n Mod 3 = 3 Then '-->scrivi numero distanzanziale esempio 10
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
x2 = cX +((nRaggio + cLung*4) * Cos(- Angolo *(pi / 180)))
y2 = cY +((nRaggio + cLung*4) * Sin(- Angolo *(pi / 180)))
Call PicLinea(x1,y1,x2,y2)
x2 = cX +((nRaggio + cLung*5) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung*5) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
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)
x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
End If
If n = 0 Then Exit For
Next
Call DisegnaFigura(aNumeri)
Call DisegnaDistanze(aCorde)
' mostro la figura in output
Call PicEsegui
End Sub
Private Sub DisegnaFigura(aNum)
Dim k
For k = 1 To UBound(aNum)
Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False)
Next
End Sub
Private Sub DisegnaDistanze(aCorde)
Dim k
For k = 1 To UBound(aCorde)
Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True)
Next
End Sub
Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt)
Dim nX,nY,sDist
' 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)
If AddCorda(p1,p2) Then
If bLineaTratt Then
Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Else
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
End If
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
If bDisegnaDist Then
If aPos(p1,1) > aPos(p2,1) Then
nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1)
Else
nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1)
End If
If aPos(p1,2) > aPos(p2,2)Then
nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2)
Else
nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2)
End If
Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow)
nX = nX - 1.5
nY = nY - 1.5
sDist = Format2(Distanza(p1,p2))
Call PicStampaTesto(nX,nY,sDist)
End If
End If
End Sub
Private Function AddCorda(n1,n2)
Dim sKey
If n1 <= n2 Then
sKey = "k" & Format2(n1) & Format2(n2)
Else
sKey = "k" & Format2(n2) & Format2(n1)
End If
On Error Resume Next
CollCorde.Add sKey,sKey
If Err = 0 Then
AddCorda = True
End If
End Function
End Class
Sub Main
Dim clsCerchio
Dim k,v,x,qt,es
Dim aCorde
x = InputBox("Quante estrazioni vuoi controllare?",,0)
For es = EstrazioneFin - x To EstrazioneFin
AvanzamentoElab EstrazioneFin - x,EstrazioneFin,es
For v = 1 To 12
If v = 11 Then v = 12 End If ' con numeri
' prendo i numeri dell'ultima estrazione di bari
' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze
ReDim aNum(0)
Call GetArrayNumeriRuota(EstrazioneFin - x,v,aNum)' ---->ruota 1
ReDim MatriceCaselleDaEvid(5,1)
'
MatriceCaselleDaEvid(1,0) = v
MatriceCaselleDaEvid(1,1) = 1
'
MatriceCaselleDaEvid(2,0) = v
MatriceCaselleDaEvid(2,1) = 2
'
MatriceCaselleDaEvid(3,0) = v
MatriceCaselleDaEvid(3,1) = 3
'
MatriceCaselleDaEvid(4,0) = v
MatriceCaselleDaEvid(4,1) = 4
'
MatriceCaselleDaEvid(5,0) = v
MatriceCaselleDaEvid(5,1) = 5
Call DisegnaEstrazione(es,MatriceCaselleDaEvid)
'qt = ScegliNumeri(aNum)
'Call OrdinaMatrice(aNum,1)
'qt = UBound(aNum)
' le corde sono le distanze interne e sono
' considerate tutte le coppie di vertici
aCorde = SviluppoIntegrale(aNum,2)
Set clsCerchio = New clsCerchioCiclometrico
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
'Scrivi DataEstrazione((EstrazioneFin - x),1) & " ",0,0,1,5,4
'Scrivi
Scrivi SiglaRuota(v) & "" & Space(6) & "" & StringaNumeri(aNum) & "" & Space(1) & "" & "",0,1,3,7,4
Scrivi "FIGURA " & "" &(Figura(aNum(1))) & "" & Space(2) & "" &(Figura(aNum(2))) & "" & Space(2) & "" &(Figura(aNum(3))) & "" & Space(2) & "" &(Figura(aNum(4))) & "" & Space(2) & "" &(Figura(aNum(5)))& " ",0,1,4,7,4
Scrivi "CADENZA " & "" &(Cadenza(aNum(1))) & "" & Space(2) & "" &(Cadenza(aNum(2))) & "" & Space(2) & "" &(Cadenza(aNum(3))) & "" & Space(2) & "" &(Cadenza(aNum(4))) & "" & Space(2) & "" &(Cadenza(aNum(5)))& " ",0,1,7,4,4
Scrivi
' II° Esempio
' dissegno una figura arbitraria
Next
Next
End Sub
Scusami anche qui mi da erroreCodice:Option Explicit Class clsCerchioCiclometrico Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri Private CollCorde Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde) Dim nRaggio ' raggio ddel cerchio Dim cX,cY ' centro del cerchio x e y Dim Base,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 Dim n Dim z Call PicClear Set CollCorde = GetNewCollection cLung = 2.2 pi = 3.14 Base = 150 Altezza = 150 nRaggio = 60 ' preimposto le dimensioni dell'area Call PicSetDimensioni(Base,Altezza,Base,Altezza) ' calcolo il centro del cerchio cX = Base / 2 cY = Altezza / 2 Call PicCerchio(cX,cY,nRaggio) Angolo = 360 n = 91 ' ciclo per disegnare i semiraggi For z = 90 To 540 Step 4 Angolo = FuoriX(z,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 n = n - 1 aPos(n,1) = x1 aPos(n,2) = y1 'If n Mod 10 = 0 Then If n Mod 7 = 6 Then '-->scrivi numeri distanziati in sequenza(7) 'If n Mod 3 = 2 Then '-->scrivi numero distanzanziale esempio 10 'If n Mod 3 = 3 Then '-->scrivi numero distanzanziale esempio 10 ' ogni 5 gradi disegno un semiraggio un po' piu lungo ' e stampo i gradi in corripondenza x2 = cX +((nRaggio + cLung*4) * Cos(- Angolo *(pi / 180))) y2 = cY +((nRaggio + cLung*4) * Sin(- Angolo *(pi / 180))) Call PicLinea(x1,y1,x2,y2) x2 = cX +((nRaggio + cLung*5) * Cos(-(Angolo + 2) *(pi / 180))) y2 = cY +((nRaggio + cLung*5) * Sin(-(Angolo + 2) *(pi / 180))) Call PicStampaTestoRT(x2,y2,n,Angolo) 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) x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180))) y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180))) Call PicStampaTestoRT(x2,y2,n,Angolo) End If If n = 0 Then Exit For Next Call DisegnaFigura(aNumeri) Call DisegnaDistanze(aCorde) ' mostro la figura in output Call PicEsegui End Sub Private Sub DisegnaFigura(aNum) Dim k For k = 1 To UBound(aNum) Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False) Next End Sub Private Sub DisegnaDistanze(aCorde) Dim k For k = 1 To UBound(aCorde) Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True) Next End Sub Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt) Dim nX,nY,sDist ' 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) If AddCorda(p1,p2) Then If bLineaTratt Then Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore) Else Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore) End If Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore) Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore) If bDisegnaDist Then If aPos(p1,1) > aPos(p2,1) Then nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1) Else nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1) End If If aPos(p1,2) > aPos(p2,2)Then nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2) Else nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2) End If Call PicCerchio(nX,nY,3,vbBlack,,True,vbYellow) nX = nX - 1.5 nY = nY - 1.5 sDist = Format2(Distanza(p1,p2)) Call PicStampaTesto(nX,nY,sDist) End If End If End Sub Private Function AddCorda(n1,n2) Dim sKey If n1 <= n2 Then sKey = "k" & Format2(n1) & Format2(n2) Else sKey = "k" & Format2(n2) & Format2(n1) End If On Error Resume Next CollCorde.Add sKey,sKey If Err = 0 Then AddCorda = True End If End Function End Class Sub Main Dim clsCerchio Dim k,v,x,qt,es Dim aCorde x = InputBox("Quante estrazioni vuoi controllare?",,0) For es = EstrazioneFin - x To EstrazioneFin AvanzamentoElab EstrazioneFin - x,EstrazioneFin,es For v = 1 To 12 If v = 11 Then v = 12 End If ' con numeri ' prendo i numeri dell'ultima estrazione di bari ' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze ReDim aNum(0) Call GetArrayNumeriRuota(EstrazioneFin - x,v,aNum)' ---->ruota 1 ReDim MatriceCaselleDaEvid(5,1) ' MatriceCaselleDaEvid(1,0) = v MatriceCaselleDaEvid(1,1) = 1 ' MatriceCaselleDaEvid(2,0) = v MatriceCaselleDaEvid(2,1) = 2 ' MatriceCaselleDaEvid(3,0) = v MatriceCaselleDaEvid(3,1) = 3 ' MatriceCaselleDaEvid(4,0) = v MatriceCaselleDaEvid(4,1) = 4 ' MatriceCaselleDaEvid(5,0) = v MatriceCaselleDaEvid(5,1) = 5 Call DisegnaEstrazione(es,MatriceCaselleDaEvid) 'qt = ScegliNumeri(aNum) 'Call OrdinaMatrice(aNum,1) 'qt = UBound(aNum) ' le corde sono le distanze interne e sono ' considerate tutte le coppie di vertici aCorde = SviluppoIntegrale(aNum,2) Set clsCerchio = New clsCerchioCiclometrico Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde) 'Scrivi DataEstrazione((EstrazioneFin - x),1) & " ",0,0,1,5,4 'Scrivi Scrivi SiglaRuota(v) & "" & Space(6) & "" & StringaNumeri(aNum) & "" & Space(1) & "" & "",0,1,3,7,4 Scrivi "FIGURA " & "" &(Figura(aNum(1))) & "" & Space(2) & "" &(Figura(aNum(2))) & "" & Space(2) & "" &(Figura(aNum(3))) & "" & Space(2) & "" &(Figura(aNum(4))) & "" & Space(2) & "" &(Figura(aNum(5)))& " ",0,1,4,7,4 Scrivi "CADENZA " & "" &(Cadenza(aNum(1))) & "" & Space(2) & "" &(Cadenza(aNum(2))) & "" & Space(2) & "" &(Cadenza(aNum(3))) & "" & Space(2) & "" &(Cadenza(aNum(4))) & "" & Space(2) & "" &(Cadenza(aNum(5)))& " ",0,1,7,4,4 Scrivi ' II° Esempio ' dissegno una figura arbitraria Next Next End Sub
toon ecco un altro script con numeri distanziati in sequenza
anche qui se volete altre sequenze dovete fare una modifica sullo script..
ho inserito anche la tabella con i numeri estratti..
Option Explicit
Class clsCerchioCiclometrico
Dim aPos(90,2) ' memorizza le coordinate relative ai 90 numeri
Private CollCorde
Sub DisegnaCerchioCiclometricoX(aNumeri,aCorde)
Dim nRaggio ' raggio ddel cerchio
Dim cX,cY ' centro del cerchio x e y
Dim Base,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
Dim n
Dim z
Call PicClear
Set CollCorde = GetNewCollection
cLung = 2.2
pi = 3.14
Base = 150
Altezza = 150
nRaggio = 60
' preimposto le dimensioni dell'area
Call PicSetDimensioni(Base,Altezza,Base,Altezza)
' calcolo il centro del cerchio
cX = Base / 2
cY = Altezza / 2
Call PicCerchio(cX,cY,nRaggio)
Angolo = 360
n = 91
' ciclo per disegnare i semiraggi
For z = 90 To 540 Step 4
Angolo = FuoriX(z,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
n = n - 1
aPos(n,1) = x1
aPos(n,2) = y1
If n Mod 10 = 1 Then '<----------------------------------
' ogni 5 gradi disegno un semiraggio un po' piu lungo
' e stampo i gradi in corripondenza
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,n,Angolo)
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)
x2 = cX +((nRaggio + cLung) * Cos(-(Angolo + 2) *(pi / 180)))
y2 = cY +((nRaggio + cLung) * Sin(-(Angolo + 2) *(pi / 180)))
Call PicStampaTestoRT(x2,y2,n,Angolo)
End If
If n = 0 Then Exit For
Next
Call DisegnaFigura(aNumeri)
Call DisegnaDistanze(aCorde)
' mostro la figura in output
Call PicEsegui
End Sub
Private Sub DisegnaFigura(aNum)
Dim k
For k = 1 To UBound(aNum)
Call DisegnaCorda(aNum(k),aNum(FuoriX(k + 1,UBound(aNum))),vbRed,True,False)
Next
End Sub
Private Sub DisegnaDistanze(aCorde)
Dim k
For k = 1 To UBound(aCorde)
Call DisegnaCorda(aCorde(k,1),aCorde(k,2),vbBlue,True,True)
Next
End Sub
Private Sub DisegnaCorda(p1,p2,colore,bDisegnaDist,bLineaTratt)
Dim nX,nY,sDist
' 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)
If AddCorda(p1,p2) Then
If bLineaTratt Then
Call PicLineaTratteggiata(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
Else
Call PicLinea(aPos(p1,1),aPos(p1,2),aPos(p2,1),aPos(p2,2),colore)
End If
Call PicPunto(aPos(p1,1),aPos(p1,2),6,colore)
Call PicPunto(aPos(p2,1),aPos(p2,2),6,colore)
If bDisegnaDist Then
If aPos(p1,1) > aPos(p2,1) Then
nX =(aPos(p1,1) - aPos(p2,1)) / 2 + aPos(p2,1)
Else
nX =(aPos(p2,1) - aPos(p1,1)) / 2 + aPos(p1,1)
End If
If aPos(p1,2) > aPos(p2,2)Then
nY =(aPos(p1,2) - aPos(p2,2)) / 2 + aPos(p2,2)
Else
nY =(aPos(p2,2) - aPos(p1,2)) / 2 + aPos(p1,2)
End If
Call PicCerchio(nX,nY,3,vbWhite,,True,vbWhite)
nX = nX - 1.5
nY = nY - 1.5
sDist = Format2(Distanza(p1,p2))
Call PicStampaTesto(nX,nY,sDist)
End If
End If
End Sub
Private Function AddCorda(n1,n2)
Dim sKey
If n1 <= n2 Then
sKey = "k" & Format2(n1) & Format2(n2)
Else
sKey = "k" & Format2(n2) & Format2(n1)
End If
On Error Resume Next
CollCorde.Add sKey,sKey
If Err = 0 Then
AddCorda = True
End If
End Function
End Class
Sub Main
Dim clsCerchio
Dim k,v,x,qt
Dim aCorde
'v = InputBox("Quale ruota vuoi controllare?",,0)
'x = InputBox("Quante estrazioni vuoi controllare?",,0)
'For v = 1 To 10
' prendo i numeri dell'ultima estrazione di bari
' disegno cerchio ciclometrico , figura dei numeri estratti , diagonali con distanze
ReDim aNum(0)
qt = ScegliNumeri(aNum)
Call OrdinaMatrice(aNum,1)
qt = UBound(aNum)
' le corde sono le distanze interne e sono
' considerate tutte le coppie di vertici
aCorde = SviluppoIntegrale(aNum,2)
Set clsCerchio = New clsCerchioCiclometrico
Call clsCerchio.DisegnaCerchioCiclometricoX(aNum,aCorde)
'Scrivi(DataEstrazione(EstrazioneFin - x)),0,0,1,3,4
'Scrivi
'Scrivi NomeRuota(v),0,0,1,3,4
Scrivi StringaNumeri(aNum)
' II° Esempio
' dissegno una figura arbitraria
'Next
End Sub
Scusami anche qui mi da errore
Scrivi "FIGURA " & "" &(Figura(aNum(1))) & "" & Space(2) & "" &(Figura(aNum(2))) & "" & Space(2) & "" &(Figura(aNum(3))) & "" & Space(2) & "" &(Figura(aNum(4))) & "" & Space(2) & "" &(Figura(aNum(5)))& " ",0,1,4,7,4