Prova a disegnare un cerchio senza utilizzare la funzione predefinita GraphicsWindow.DrawEllipse().
Sarà necessario utilizzare le equazioni parametriche con seno e coseno e angolo variabile da 0 a 360 gradi
Il codice è piuttosto lungo perché sarà utilizzato in seguito per realizzare molte figure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
'---------------------------------------- SCELTE GRAFICHE DIM =800 ' Finestra COLORE1 ="#10000000" ' Raggio SPESSORE=1 ' COLORE2 ="#30000060" ' Punto scuro raggioP =4 ' Raggio punto '--------------------------------------- SCELTE SPECIFICHE RAGGIO =0.4*DIM ' Fattore di scala PIATTI =2 ' Numeri di angoli piatti tMIN =0 ' Dominio t tMAX =tMIN+PIATTI*Math.Pi ' NUMERO =PIATTI*500 ' Numero di punti RITARDO=2 ' Per rallentare l'animazione '--------------------------------------- FINESTRA GRAFICA GraphicsWindow.Title ="Cerchio" GraphicsWindow.Width =DIM GraphicsWindow.Height =DIM GraphicsWindow.PenWidth =SPESSORE GraphicsWindow.PenColor =COLORE1 GraphicsWindow.BrushColor=COLORE2 '--------------------------------------- COSTANTI DI SERVIZIO W2=DIM/2 ' Centro dello schermo H2=DIM/2 diamP =2*raggioP ' diametro del punto nero deltaT=(tMAX-tMIN)/numero ' incremento t=tMIN For i=1 to NUMERO '--------------------------------- FUNZIONI x=Math.Cos(t) y=Math.Sin(t) '--------------------------------- x=W2+RAGGIO*x y=H2-RAGGIO*y GraphicsWindow.DrawLine(W2,H2, x,y) ' Raggio grigio GraphicsWindow.FillEllipse(x-raggioP,y-raggioP,diamP,diamP) ' Punto scuro '--------------------------------- t=t+deltaT Program.Delay(RITARDO) EndFor |
Con la modifica
1 |
y=Math.Sin(t)/1.25 |
diventa un’ellisse
Nelle prossime pagine dovrai variare soltanto le FUNZIONI per x e y
1 2 |
x=... y=... |
e di conseguenza fare le Scelte specifiche per rendere significativa la rappresentazione
1 2 3 4 5 6 |
RAGGIO =0.4*DIM ' Fattore di scala PIATTI =2 ' Numeri di angoli piatti tMIN =0 ' Dominio t tMAX =tMIN+PIATTI*Math.Pi ' NUMERO =PIATTI*500 ' Numero di punti RITARDO=2 ' Per rallentare l'animazione |