Dessiner pixel

DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013 - 14 févr. 2008 à 20:24
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013 - 20 févr. 2008 à 14:54
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

NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
15 févr. 2008 à 09:25
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
0
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
16 févr. 2008 à 12:38
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!
0
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
18 févr. 2008 à 13:39
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
0
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
18 févr. 2008 à 21:37
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
19 févr. 2008 à 09:13
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
0
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
19 févr. 2008 à 20:32
Comment on les utilisent? ^_^;;
0
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
20 févr. 2008 à 08:46
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
0
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
20 févr. 2008 à 14:54
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!
0
Rejoignez-nous