Open Menu dzosoft
Close Menu dzosoft

   TOUT SUR L'INFORMATIQUE ET LA TECHNOLOGIE


                             




Release your testosterone and observe the extreme increase in muscle mass.

Publish perfectly-optimized content in 1-click



 
 
 

Forme 3D, courbe 3D et boule 3D dans VB .Net utilisant GDI+

 
Forme 3D, Courbe 3D et Boule 3D en VB .Net en utilisant GDI+


La forme la plus élémentaire de programmation graphique dans Visual Basic.Net utilise un ensemble de classes appelées GDI+.
GDI+ signifie Graphics Device Interface Plus et la raison du suffixe plus est qu'avant GDI+
il y avait GDI, il est donc là pour être présenté comme une amélioration par rapport à son prédécesseur.

Les classes GDI+ résident dans l'espace de noms System.Drawing et certaines classes sont :
 - System.Drawing.Bitmap
 - System.Drawing.Graphics
 - System.Drawing.Icon
 - System.Drawing.Image
Une fois que vous avez une toile sur laquelle dessiner, vous devez disposer d’une sorte d’objet pour commencer le dessin ; le
La classe System.Drawing.Graphics est celle qui s'occupe des opérations de dessin dans
Visual Basic.Net. Il existe trois méthodes différentes pour utiliser la classe Graphics, une méthode accède
un objet Graphics qui existe déjà tandis que les deux autres méthodes créent en fait un objet Graphics.
Afin d'accéder à un objet Graphics qui existe déjà, vous devez utiliser PaintEventArgs dans un
l’événement Paint du contrôle. Il s'agit du paramètre e dans la déclaration d'événement :

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    Dim g As Graphics = e.Graphics
End Sub	

Or get that of PictureBox1 control like the following code:
  Dim g As System.Drawing.Graphics
  g = PictureBox1.CreateGraphics


Ouvrez la Communauté Microsoft Visual Studio 2019 ou avec une licence et sélectionnez un nouveau projet dans le menu Fichier.
Sélectionnez Visual Basic, Windows Form Application puis cliquez sur OK, insérez le premier formulaire Form1,
à partir de la barre d'outils, insérez trois boutons Button1, Button2 et Button3
ajouter un autre contrôle PictureBox1 pour le dessin

Dans ce projet, vous devez déclarer les variables suivantes
    Dim g As System.Drawing.Graphics 
    Dim pen1 As New System.Drawing.Pen(Color.Blue, 0.5) ' the pen with a specific color 
    Const PI = 3.14159 
    Dim flag, col, r, h, hl, n, n1 As Short
    Dim x, y, z, cx, cy, cz, thx, thy, thz As Single
    Dim point1, point2, point3, point4, point5 As System.Drawing.Point


Double-cliquez sur le Button1 et ajoutez le code suivant
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim th As Single Static ax(9), ay(9), az(9) Static bx(9), by(9), bz(9) h = 160 : thy = 0.2 col = 0 : n1 = 1 r = 100 n = 8 thx = 0.2 PictureBox1.Refresh() ax(0) = h : ay(0) = h : az(0) = h n1 = 1 For th = 0 To 2 * PI + 0.1 Step 2 * PI / n x = r * Math.Cos(th) : y = -h : z = r * Math.Sin(th) Call dzorotationX() : Call dzorotationX() bx(n1) = x : by(n1) = y : bz(n1) = z n1 = n1 + 1 Next th For n1 = 1 To n x = ax(n1) : y = ay(n1) Call dzodrawline() x = ax(n1 + 1) : y = ay(n1 + 1) Call dzodrawline() x = bx(n1 + 1) : y = by(n1 + 1) Call dzodrawline() x = bx(n1) : y = by(n1) Call dzodrawline() Next n1 End Sub

Et voici le résultat après exécution

 
Forme 3D, courbe 3D et boule 3D dans VB .Net utilisant GDI+
 

Double click on the Button2 and add the following code
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        PictureBox1.Refresh()
        g = PictureBox1.CreateGraphics
        Dim x, y, s, cx, cy, zz, xx, yy As Single
        Dim h, a, b, sx, sx1, sx2, sy, sy1, sy2 As Integer
        Dim x1, x2, y1, y2, xw, yw As Integer
        s = pi / 16
        x1 = -3
        x2 = 3
        xw = x2 - x1
        y1 = -9 : y2 = 9 : yw = y2 - y1
        sx1 = 140 : sx2 = 600
        sy1 = 360 : sy2 = 100
        cx = (sx2 - sx1) / xw
        cy = (sy1 - sy2) / yw
        h = 170 : a = 6 : b = 6
        For y = y1 + 6 To y2 - 6 Step 1 / cy
            For x = x1 To x2 Step 1 / cx * 2
                zz = h * Math.Exp(-x * x / a * a - y * y / b * b)
                xx = x * cx + sx1 + 160
                yy = sy1 - y * cy
                sx = Int(xx + y * cy * Math.Cos(s))
                sy = yy - zz
                sy = sy - 100
                If x = -3 Then
                    point1.X = sx - 60 : point1.Y = sy - 20
                Else : point2.X = sx - 60 : point2.Y = sy - 20
                    g.DrawLine(pen1, point1, point2)
                    point1 = point2
                End If
            Next x
        Next y
    End Sub


Et voici le résultat après exécution

 
Forme 3D, courbe 3D et boule 3D dans VB .Net utilisant GDI+
 

Double click on the Button3 and add the following code
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        PictureBox1.Refresh()
        g = PictureBox1.CreateGraphics
        Dim i, r As Integer
        Dim x, y, z, s, q, p, px, py As Single
        Dim mx(600), my(600) As Integer
        s = pi / 4
        r = 100
        i = 1
        q = -pi / 2 + 0.1
        For p = 0 To 2 * pi Step 0.2
            x = r * Math.Cos(q) * Math.Sin(p)
            y = r * Math.Sin(q)
            z = r * Math.Cos(q) * Math.Cos(p)
            px = x * 1.2
            py = y - z * Math.Sin(s)
            mx(i) = px + 200
            my(i) = 150 - py
            i = i + 1
        Next p
        point1.X = mx(1) : point1.Y = my(1)
        For q = -pi / 2 + 0.2 To pi / 2 Step 0.2
            i = 1
            For p = 0 To 2 * pi Step 0.2
                x = r * Math.Cos(q) * Math.Sin(p)
                y = r * Math.Sin(q)
                z = r * Math.Cos(q) * Math.Cos(p)
                px = x * 1.2
                py = y - z * Math.Sin(s)

point2.X = px + 200 : point2.Y = 150 - py g.DrawLine(pen1, point1, point2)
point1 = point2
point3.X = mx(i) : point3.Y = my(i) point4.X = px + 200 : point4.Y = 150 - py g.DrawLine(pen1, point3, point4) point3 = point4 mx(i) = px + 200 my(i) = 150 - py i = i + 1 Next p p = 0 x = r * Math.Cos(q) * Math.Sin(p) y = r * Math.Sin(q) z = r * Math.Cos(q) * Math.Cos(p) px = x * 1.2 py = y - z * Math.Sin(s)
point5.X = px + 200 : point5.Y = 150 - py g.DrawLine(pen1, point4, point5) point4 = point5 Next q End Sub


Et voici le résultat après exécution

 
Forme 3D, courbe 3D et boule 3D dans VB .Net utilisant GDI+
 

Enfin vous aurez le code suivant dans notre classe Form1

Public Class Form1
    Dim g As System.Drawing.Graphics
    Dim pen1 As New System.Drawing.Pen(Color.Blue, 0.5)
    Const PI = 3.14159
    Dim flag, col, r, h, hl, n, n1 As Short
    Dim x, y, z, cx, cy, cz, thx, thy, thz As Single
    Dim point1, point2, point3, point4, point5 As System.Drawing.Point
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim th As Single Static ax(9), ay(9), az(9) Static bx(9), by(9), bz(9) h = 160 : thy = 0.2 col = 0 : n1 = 1 r = 100 n = 8 thx = 0.2 PictureBox1.Refresh() ax(0) = h : ay(0) = h : az(0) = h n1 = 1 For th = 0 To 2 * PI + 0.1 Step 2 * PI / n x = r * Math.Cos(th) : y = -h : z = r * Math.Sin(th) Call dzorotationY() : Call dzorotationX() bx(n1) = x : by(n1) = y : bz(n1) = z n1 = n1 + 1 Next th For n1 = 1 To n x = ax(n1) : y = ay(n1) Call dzodrawline() x = ax(n1 + 1) : y = ay(n1 + 1) Call dzodrawline() x = bx(n1 + 1) : y = by(n1 + 1) Call dzodrawline() x = bx(n1) : y = by(n1) Call dzodrawline() Next n1 End Sub Public Sub dzodrawline() Dim gx, gy As Single gx = 250 + x gy = 180 + y If flag = 0 Then point1.X = gx : point1.Y = gy flag = 1 point2.X = gx : point2.Y = gy g = PictureBox1.CreateGraphics g.DrawLine(pen1, point1, point2) point1 = point2 End Sub Private Sub dzorotationX() Dim yw, zw As Single yw = y : zw = z y = yw * Math.Cos(thx) - zw * Math.Sin(thx) z = yw * Math.Sin(thx) + zw * Math.Cos(thx) End Sub
Private Sub dzorotationY() Dim zw, xw As Single zw = z : xw = x x = zw * Math.Cos(thy) - xw * Math.Sin(thy) z = zw * Math.Sin(thy) + xw * Math.Cos(thy) End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click PictureBox1.Refresh() g = PictureBox1.CreateGraphics Dim x, y, s, cx, cy, zz, xx, yy As Single Dim h, a, b, sx, sx1, sx2, sy, sy1, sy2 As Integer Dim x1, x2, y1, y2, xw, yw As Integer s = pi / 16 x1 = -3 x2 = 3 xw = x2 - x1 y1 = -9 : y2 = 9 : yw = y2 - y1 sx1 = 140 : sx2 = 600 sy1 = 360 : sy2 = 100 cx = (sx2 - sx1) / xw cy = (sy1 - sy2) / yw h = 170 : a = 6 : b = 6 For y = y1 + 6 To y2 - 6 Step 1 / cy For x = x1 To x2 Step 1 / cx * 2 zz = h * Math.Exp(-x * x / a * a - y * y / b * b) xx = x * cx + sx1 + 160 yy = sy1 - y * cy sx = Int(xx + y * cy * Math.Cos(s)) sy = yy - zz sy = sy - 100 If x = -3 Then point1.X = sx - 60 : point1.Y = sy - 20 Else : point2.X = sx - 60 : point2.Y = sy - 20 g.DrawLine(pen1, point1, point2) point1 = point2 End If Next x Next y End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click PictureBox1.Refresh() g = PictureBox1.CreateGraphics Dim i, r As Integer Dim x, y, z, s, q, p, px, py As Single Dim mx(600), my(600) As Integer s = pi / 4 r = 100 i = 1 q = -pi / 2 + 0.1 For p = 0 To 2 * pi Step 0.2 x = r * Math.Cos(q) * Math.Sin(p) y = r * Math.Sin(q) z = r * Math.Cos(q) * Math.Cos(p) px = x * 1.2 py = y - z * Math.Sin(s) mx(i) = px + 200 my(i) = 150 - py i = i + 1 Next p point1.X = mx(1) : point1.Y = my(1) For q = -pi / 2 + 0.2 To pi / 2 Step 0.2 i = 1 For p = 0 To 2 * pi Step 0.2 x = r * Math.Cos(q) * Math.Sin(p) y = r * Math.Sin(q) z = r * Math.Cos(q) * Math.Cos(p) px = x * 1.2 py = y - z * Math.Sin(s)
point2.X = px + 200 : point2.Y = 150 - py g.DrawLine(pen1, point1, point2)
point1 = point2
point3.X = mx(i) : point3.Y = my(i) point4.X = px + 200 : point4.Y = 150 - py g.DrawLine(pen1, point3, point4) point3 = point4 mx(i) = px + 200 my(i) = 150 - py i = i + 1 Next p p = 0 x = r * Math.Cos(q) * Math.Sin(p) y = r * Math.Sin(q) z = r * Math.Cos(q) * Math.Cos(p) px = x * 1.2 py = y - z * Math.Sin(s)
point5.X = px + 200 : point5.Y = 150 - py g.DrawLine(pen1, point4, point5) point4 = point5 Next q End Sub End Class


 

Conclusion

 
J'espère que vous avez appris à dessiner dans Visual Basic.Net à l'aide de GDI+. Comme vous pouvez le constater, le dessin est assez
simple mais peut avoir ses pièges, comme ne pas utiliser les instructions Using lors de la déclaration des différents objets.
vous pouvez télécharger l'intégralité du projet à partir d'ici



También te puede interesar


TOUT SUR  L'INFORMATIQUE ET LA TECHNOLOGIE

Comment créer un outil Paint dans VB .Net

Utilisez VB .Net et Active Directory

Capture Webcam dans VB.NET

Utilisation de ChatGPT dans VB .Net


Leave comment
          

Enregistrez le pseudo et l'e-mail dans ce navigateur pour la prochaine fois.



Cargando...     

TRAIN INTENSELY LIKE NEVER BEFORE AND PUSH YOUR LIMITS!