Vai al contenuto

Unisci i punti – 6

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

Lascia un commento

Il tuo indirizzo email non sarĂ  pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.