Dessiner pixel

Signaler
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013
-
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013
-
Bonjour, je suis en train de faire un émulateur de NES en VB.NET et je m'attaque au procédé PPU (Picture Processor Unit)
Et je voudrais savoir comment dessiner un point à un endroit spécifié de couleur noire.

Merci d'avance.

8 réponses

Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
157
Bonjour

En .NET, il me semble que :
- Si tu utilises un objet Bitmap, regardes sa méthode SetPixel
- Si c'est sur un Graphics, regarde dans ses méthodes.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013

J'ai essayé de faire des pixels, mais il y a une erreur disant "NullReferenceException". (pffffff...)
J'ai essayé avec des peintures de cercles microscopiques, mais ça met DEUX heures pour remplir la totalité de l'écran.

Voici le code pour peindre les cercles qui ressemblent à des pixels et remplir la totalité du PictureBox:

Public x As Integer
Public y As Integer

Dim g As Graphics = NESRend.CreateGraphics()
        Dim f As New Drawing2D.GraphicsPath() 'Graphiques avec GDI+

        f.AddEllipse(New Rectangle(x, y, 1, 0))
        g.DrawPath(New Pen(Color.Black), f)

        x += 1 '1 pixel plus loin
        If x = 256 Then 'Fin de ligne
            x = 0 'Nouvelle colonne
            y += 1 'Nouvelle ligne
        End If
        If y = 240 Then 'Fin du picturebox
            x = 0 'Réinitialisation
            y = 0
            Me.Refresh() 'Effaçage des anciens pixels.
        End If

Si je ne réussi pas, je crois que je vais devenir fou!
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
157
Bonjour

A la place d'un cercle, pourquoi tu ne fais pas plutot un rectangle ou une ligne (étonnant qu'il n'y ais rien concenrant les pixels).

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013

C'est ce que j'ai fais! Mais ça met trop de temps! Pourtant, j'ai mis une journée entière à réfléchir à ce processus de dessin par points (pas de pixels)
J'ai cru qu'il y allait avoir une case noire constituée de points qui se tracent très rapidement, et non ce sont des points qui se tracent en deux heures.
Et cercle, stylo, rectangle, etc. ça ne changera pas. J'ai pourtant cherché sur Google.
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
157
Bonjour

Sinon, tu peux te replier sur l'objet Bitmap (qui possède un SetPixel pour définir les pixels) ou sur DirectDraw.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013

Comment on les utilisent? ^_^;;
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
157
Bonjour

Concernant l'objet Bitmap, je te renvoie à l'aide MSDN, pour DirectX (DirectDraw plus précisément), je te conseillerais de faire une recherche sur le site.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Messages postés
69
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2013

Grâce aux liens relatifs du topic (en-dessous) j'ai trouvé une solution:
J'ai utilisé Me.Paint, et ça marche!
ça va plus vite que le dessin ligne par ligne de rectangles
Merci beaucoup pour votre aide!