Section courante

A propos

Section administrative du site

Oberon .NET   VB .NET  

J'ai longuement hésité, tant qu'à savoir, si je devais mettre ou non, un exemple d'affichage du Cube RVB en 3 dimensions. Est-ce vraiment utile? Il semblerait que, dans un certain sens, oui, puisque je considère que cela permettra pour plusieurs de développer leur imagination dans un sens pratique du traitement des couleurs. Le concept de l'image suivante est fort simple, il faut créer des coordonnées en 3 dimensions de façon à égaler toujours la même somme total en coordonnée lorsqu'on affiche dans une couleur. Voici le code source Visual Basic .NET (VB .NET) :

  1. Public Class Form1
  2.  
  3.     Const CenterHorizontal = 320 \ 2
  4.     Const CenterVertical = 320 \ 2
  5.  
  6.     Sub SetPixel3D(ByVal e As PaintEventArgs, ByVal X As Integer, ByVal Y As Integer, ByVal Z As Integer, ByVal Kr As Color)
  7.         e.Graphics.DrawRectangle(New Pen(Kr), CenterHorizontal + X - (Z \ 2), CenterVertical - Y + (Z \ 2), 1, 1)
  8.     End Sub
  9.  
  10.     Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
  11.         Dim I As Integer
  12.         Dim J As Integer
  13.         Dim K As Integer
  14.  
  15.         For I = 0 To 149
  16.             SetPixel3D(e, 0, 0, I, Color.Black)
  17.             SetPixel3D(e, 0, I, 0, Color.Black)
  18.             SetPixel3D(e, I, 0, 0, Color.Black)
  19.         Next
  20.         For J = 99 To 0 Step -1
  21.             For I = 0 To 99
  22.                 SetPixel3D(e, I, J, 99, Color.FromArgb(I, J, 99))
  23.             Next I
  24.         Next J
  25.         For K = 0 To 99
  26.             For I = 0 To 99
  27.                 SetPixel3D(e, I, 99, K, Color.FromArgb(I, 99, K))
  28.             Next I
  29.         Next K
  30.         For J = 99 To 0 Step -1
  31.             For K = 0 To 99
  32.                 SetPixel3D(e, 99, J, K, Color.FromArgb(99, J, K))
  33.             Next
  34.         Next
  35.     End Sub
  36.  
  37.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  38.         MyBase.Text = "Cube RVB"
  39.         MyBase.Width = 320
  40.         MyBase.Height = 320
  41.         MyBase.BackColor = Color.White
  42.     End Sub
  43.  
  44. End Class

Voici en terminant un exemple du résultat de ce petit programme :





Dernière mise à jour : Samedi, le 22 octobre 2016