Tracer des points dans un picturebox

smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012 - 5 janv. 2012 à 12:39
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 5 janv. 2012 à 14:41
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 13:02
Int32 => Integer => Entier

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


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
5 janv. 2012 à 13:06
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
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 13:12
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 ...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
5 janv. 2012 à 13:16
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
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 13:18
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
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 13:18
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.
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 13:41
j'ai déclaré mypoints As PointF , mais j'ai toujours une erreur...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 13:43
Quelle erreur obtiens tu ?




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 13:49
la même : -2,921143 n'est pas une valeur valide pour Int32.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 14:00
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 14:02
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
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 14:08
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)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 14:14
c'est bien ce que dit la doc ...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
smog576 Messages postés 9 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 janvier 2012
5 janv. 2012 à 14:26
OK, mais comment on fait pour modifier l'échelle du panel ? Parce qu'on voit quelques petits pics, mais pas grand chose ...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 janv. 2012 à 14:41
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
0