Tracer des points dans un picturebox

Signaler
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,

Je suis débutant en visual basic et je dois visualiser des points dans une picturebox.

Les valeurs sont contenus dans une liste String, et sont du type "-2,921143" , "-0,722656" , "-3,138733" ...

J'ai essayé de créer une liste de points mypoints , de la même longueur que la liste de valeurs, mais je n'arrive pas à remplir mypoints...

J'ai mis ce code :

Dim pc As New PointConverter()
For l As Integer = 0 To 899
mypoints(l) = New Point(pc.ConvertFromString(liste(l)), l + 1)


Mais il me répond une erreur : -2,921143 n'est pas une valeur valide pour Int32.

Que faire ?

Merci de votre aide

15 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Int32 => Integer => Entier

pas de déimal possible dans ce type de variable...


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,,
le code montré montre de tourtes manières qu'il n'est ps un code VB6 (la présente section) !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

Le problème c'est que j'ai dit nul part que c'était en int32, donc je sais pas trop où et quand je dois mettre que c'est pas un integer ...

J'ai déclaré au début que liste était decimal, mais il me met la même erreur ...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
C'est quoi, alors, cette ligne :
For l As Integer = 0 To 899


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tu t'égares, ucfoutu...


la classe Point ne convient pas :

http://msdn.microsoft.com/en-us/library/system.drawing.point.point.aspx

Point(Int32, Int32)

il est là ton Int32

cible un PointF :
http://msdn.microsoft.com/en-us/library/system.drawing.pointf.pointF.aspx





Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

en fait j'ai fait un pour afin de mettre toutes les valeurs contenues dans liste dans mypoints, et essayer de tracer mypoints par la suite.

le l est juste le compteur de mon pour.
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

j'ai déclaré mypoints As PointF , mais j'ai toujours une erreur...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Quelle erreur obtiens tu ?




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

la même : -2,921143 n'est pas une valeur valide pour Int32.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tu peux pas convertir un Point en Int32 !!!

tu fais :

pc.ConvertFromString(liste(l))

ca te donne un Point.

tu fais ensuite :

New Point(, l + 1)

forcément, ca ne colle pas, Point n'a pas de constructeur prenant un Point en premier parametre et un Int32 en second...


je reprend donc depuis le début:

tu as un tableau de String contenant :

"-2,921143"
"-0,722656"
"-3,138733"

tu souhaites tracer un point pour chaque Item, soit :

1: x -2 y 921143
2: x -0 y 722656
3: x -3 y 138733

en ce cas, faire :

Dim pc As New PointConverter()
For l As Integer = 0 To 899
    mypoints(l) = pc.ConvertFromString(liste(l))
Next l



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
et si tu souhaites avoir :

1: x = -2,921143 y=0
2: x = -0,722656 y=1
3: x = -3,138733 y=2

(ou inversement, peu importe ce que tu vois comme x ou y)

faire :

For l As Integer = 0 To 899
mypoints(l) mypoints(l) New PointF(Single.Parse(liste(i)), l + 1)
Next l

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

OK merci !!

Comment faire ensuite pour le tracer dans une picture box ?

j'avais vu sur internet qu'il fallait faire ceci :

        Dim Gr As Graphics = Panel1.CreateGraphics()
        Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Black)
        Gr.DrawLines(myPen, mypoints)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
c'est bien ce que dit la doc ...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
9
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 janvier 2012

OK, mais comment on fait pour modifier l'échelle du panel ? Parce qu'on voit quelques petits pics, mais pas grand chose ...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tu peux voir

http://msdn.microsoft.com/en-us/library/system.drawing.graphics.pagescale.aspx

l'idée est de modifier la matrice de transposition des coordonnées du monde


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp