Sperimenta con
- il numero di punte della stella (nVERTICI)
- il numero di chiodini (nCHIODI) per ogni striscia
- il salto tra un vertice e l’altro (SALTO)
'------------------------------------------------------------------- Finestra
DIM =800
DIM2=DIM/2
GraphicsWindow.Width =DIM
GraphicsWindow.Height=DIM
GraphicsWindow.Title ="Unisci i punti"
'------------------------------------------------------------------- COSTANTI
nVERTICI=60 ' Numero vertici
nCHIODI =25 ' Numero chiodini
SALTO =20 ' Salto tra le strisce
RITARDO1=5 ' Ritardo tra una coppia e l'altra
RITARDO2=1 ' Ritardo per ogni filo
spazio=25
RAGGIO=dim2-SPAZIO
'------------------------------------------------------------------- VERTICI
delta=2*Math.Pi/nVERTICI
angolo=Math.Pi/2
For i=1 TO nVERTICI
verticiX[i]=DIM2+RAGGIO*Math.Cos(angolo)
verticiY[i]=DIM2-RAGGIO*Math.Sin(angolo)
angolo=angolo+delta
ENDFOR
'------------------------------------------------------------------- COSTRUZIONE
For i=1 to nVERTICI
i1=i+SALTO
If(i1 > nVERTICI)then
i1=i1-nVERTICI
endif
barra1Ax=verticiX[i]
barra1Ay=verticiY[i]
barra1Bx=DIM2
barra1By=DIM2
barra2Ax=DIM2
barra2Ay=DIM2
barra2Bx=verticiX[i1]
barra2By=verticiY[i1]
STRISCE()
CHIODI()
FILI()
EndFor
'--------------------------------------------------------------------- FUNZIONI
Sub STRISCE
GraphicsWindow.PenWidth=3
GraphicsWindow.PenColor=GraphicsWindow.GetRandomColor()
GraphicsWindow.PenColor="#330000FF"
GraphicsWindow.DrawLine(barra1Ax,barra1Ay, barra1Bx,barra1By)
GraphicsWindow.DrawLine(barra2Ax,barra2Ay, barra2Bx,barra2By)
Program.Delay(RITARDO1)
EndSub
'-------------------------------------------------------------------
Sub CHIODI
delta1=1/nCHIODI
delta2=delta1/2
deltaA=1-delta2
deltaB=delta2
For j=1 To nCHIODI
Chiodi1X[j]=deltaA*barra1Ax+deltaB*barra1Bx
Chiodi1Y[j]=deltaA*barra1Ay+deltaB*barra1By
Chiodi2X[j]=deltaA*barra2Ax+deltaB*barra2Bx
Chiodi2Y[j]=deltaA*barra2Ay+deltaB*barra2By
deltaA=deltaA-delta1
deltaB=deltaB+delta1
EndFor
raggio=2
diametro=2*raggio
GraphicsWindow.BrushColor="#66000000"
For j=1 To nCHIODI
GraphicsWindow.FillEllipse(Chiodi1X[j]-raggio, Chiodi1Y[j]-raggio, diametro, diametro)
GraphicsWindow.FillEllipse(Chiodi2X[j]-raggio, Chiodi2Y[j]-raggio, diametro, diametro)
EndFor
Program.Delay(RITARDO1)
EndSub
'-------------------------------------------------------------------
Sub FILI
GraphicsWindow.PenWidth=1
c=GraphicsWindow.GetRandomColor()
GraphicsWindow.PenColor="#66000033"
For j=1 To nCHIODI
GraphicsWindow.DrawLine(Chiodi1X[j], Chiodi1Y[j], Chiodi2X[j], Chiodi2Y[j])
Program.Delay(RITARDO2)
EndFor
EndSub
Esperimento 1
nVERTICI=25 nCHIODI =25 SALTO =4
Esperimento 2
nVERTICI=60 nCHIODI =12 SALTO =12
