Differenze tra le versioni di "Disegnare in una DrawingArea una pseudo-galleria rettangolare tridimensionale in prospettiva con effetto grafico di movimento in avanti"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Disegniamo in una DrawingArea una pseudo-galleria rettangolare tridimensionale in prospettiva con effetto grafico di movimento di chi guarda in avanti: Private DrawingArea1 A...")
 
Riga 1: Riga 1:
Disegniamo in una DrawingArea una pseudo-galleria rettangolare tridimensionale in prospettiva con effetto grafico di movimento di chi guarda in avanti:
+
Disegniamo in una DrawingArea una pseudo-galleria rettangolare tridimensionale in prospettiva con effetto grafico di movimento di chi guarda in avanti, dando altresì l'impressione di percorrere tratti della galleria, ciascuno diversamente colorato rispetto al precedente:
 
  Private DrawingArea1 As DrawingArea
 
  Private DrawingArea1 As DrawingArea
 
  Private c As Short = -1
 
  Private c As Short = -1

Versione delle 21:55, 2 mag 2023

Disegniamo in una DrawingArea una pseudo-galleria rettangolare tridimensionale in prospettiva con effetto grafico di movimento di chi guarda in avanti, dando altresì l'impressione di percorrere tratti della galleria, ciascuno diversamente colorato rispetto al precedente:

Private DrawingArea1 As DrawingArea
Private c As Short = -1
Private clr As Integer = Color.Blue
Private vch As Integer = Color.Blue


Public Sub _new()
 
 With Me
   .Center
   .W = Screen.AvailableWidth
   .H = Screen.AvailableHeight
   .Arrangement = Arrange.Fill
 End With
 
 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .Background = Color.White
 End With
 
End

Public Sub Form_Open()

 Me.Show

 Do
   Inc c
   Wait 0.3
   If Object.IsValid(DrawingArea1) Then 
     DrawingArea1.Refresh
   Else 
     Break
   Endif
 Loop

End

Public Sub DrawingArea1_Draw()

 Dim b As Byte

' Definisce il rettangolo per disegnare la iniziale pseudo-galleria in 3D:
 For b = c + 1 To 20
   With Paint
     .Rectangle((DrawingArea1.W * 0.5) - ((DrawingArea1.W * (b / 20)) / 2), ((DrawingArea1.H * 0.5) - (DrawingArea1.H * (b / 20)) / 2), DrawingArea1.W * (b / 20), DrawingArea1.H * (b / 20))
     .LineWidth = 2.5
     .Brush = Paint.Color(vch)
     .Stroke()
   End With
 Next 

' Definisce il rettangolo per disegnare la nuova pseudo-galleria con un colore diverso:
 If c == 0 Then clr = Rand(&000099, &FFFF99)
 For b = 0 To c
   With Paint
     .Rectangle((DrawingArea1.W * 0.5) - ((DrawingArea1.W * (b / 20)) / 2), ((DrawingArea1.H * 0.5) - (DrawingArea1.H * (b / 20)) / 2), DrawingArea1.W * (b / 20), DrawingArea1.H * (b / 20))
     .LineWidth = 2.5
     .Brush = Paint.Color(clr)
     .Stroke()
   End With
 Next 

 If c = 20 Then
   Paint.End()
   c = 0
   vch = clr
   clr = Rand(&000099, &FFFF99)
 Endif 

End