Graphique sous Vb.net

petzuki Messages postés 8 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 31 mai 2008 - 30 mai 2008 à 21:16
petzuki Messages postés 8 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 31 mai 2008 - 30 mai 2008 à 22:41
Bonsoir ,

Je voulais savoir si quelqu'un serait capable de m'expliquer le principe des "positions de points" sous VB.net.
J'avoue comme ça on ne comprend rien !
Je suis censée réaliser un diagramme en bâton sous VB.net . Pour cela j'ai dû calculer des effectis à l'aide d'un programme sous VB.net, pour cela pas de problème!
Après je dois donc créer un axe (abscisse, ordonnée) pas de soucis là non plus ...Le problème survient quand je dois représenter le diagramme! En effet, lorsque je lui indique les coordonnées de deux points (x,y) pour les relier afin de représenter un rectangle (diagramme) il me fait n'importe quoi ! Il me semble que cela vient du fait qu'il repart de la position (x,y) précédente ... dans ce cas impossible de représenter un rectangle dont la base serait superposée à l'axe des absices!
J'espère avoir été assez clair, mais j'ai bien peur que non !
A ceux qui oseront essayer de comprendre!
Merci pour vos infos

3 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
30 mai 2008 à 21:41
Salut Petzuki,

Je comprend ce que tu veux dire, mais je ne comprend absolument pas pourquoi ça ne fonctionne pas chez toi. Peut-être que si on voit ton code (un résumé de préférence, le dessin de l'axe plus un rectangle par ex) on pourra voir ce qui ne va pas...

Graphics.FillRectangle(myBrush, myRect) dessine un rectangle au coordonné absolue, pas relative. (sauf par rapport à une matrice de transformation, Graphics.Transform)
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
30 mai 2008 à 21:52
        ' 1er baton

        e.Graphics.FillRectangle(Brushes.Blue, New Rectangle(50, 30, 30, 70))
        ' 2ème baton
        e.Graphics.FillRectangle(Brushes.Red, New Rectangle(100, 45, 30, 55))
        ' 3ème baton
        e.Graphics.FillRectangle(Brushes.LightGreen, New Rectangle(150, 35, 30, 65))
        ' L'axe
        e.Graphics.DrawLine(New Pen(Color.Black, 5), 20, 100, 220, 100)

donne:
0
petzuki Messages postés 8 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 31 mai 2008
30 mai 2008 à 22:41
voici un extrait de mon code ! pas sur qu'on puisse y comprendre grand chose
si je comprend bien il y a plus simple que ce que j'ai écrit seulement nous n'avons pas manipuler le language associé "au dessin" durant l'année donc nous sommes limités, enfin je veux dire par là que nous créons nos programmes avec le peu de moyen que l'on a mais de nouvelles solutions sont les bienvenues! j'essaierais d'adapter ce que tu m'as proposé demain !
Merci pour ton aide
a+

Dim



blackpen

as New
Pen (Color.Black,2)


Dim
pointy

As New
Point (100, 50)  'coordonnée de l'ordonnée


Dim
pointx

As New
Point (600,300)  'coordonnée de l'abscisse
Dim point0
As New Point (100,300)
' coordonnée du point d'origine

Dim
pointv

As New
Point (90,60)    'coordonnée pour faire une flèche au bout de l'axe


Dim
pointw

As New
Point (110,60) 'coordonnée pour faire une flèche au bout de l'axe


Dim
points

As New
Point (590,310)'coordonnée pour faire une flèche au bout de l'axe


Dim
pointr

As New
Point (590,290)'coordonnée pour faire une flèche au bout de l'axe


Dim
pointx1

As New
Point (i,j)   'coordonnée du premier point du rectangle


Dim
pointy1

As New
Point (l,m) 'coordonnée du deuxieme point du rectangle

g=panel.CreateGraphics
g.DrawLine(blackpen, pointy, pointv)
g.DrawLine(blackpen, pointy, pointw)
g.DrawLine(blackpen, pointx, points)
g.DrawLine(blackpen, pointx, pointr)
g.drawLine(blackpen, point0, pointx)
g.drawLine(blackpen, pointy, point0)

Label1.Text=panel.Height & vbnewline
Label1.Text &= panel.Width & vbnewline
label1.text &=


Me
.Location.X & vbnewline
Label1.Text &=

Me
.Location.Y & vbnewline

'permet de calculer les  coordonnées selon les effectifs calculer précèdement à l'aide d'un programme !

max=module1.Fmax(teff,cpt)j=0
i=120
t=0
m=250
l=50


For
t=0

To
cpt-1   j=(250-(200*teff(t))/max)
   g.FillRectangle(brushes.Purple,i,j,l,m)
   g.drawString(tmod(t),


New
Font("verdana",12),brushes.Black,m+50,i)
   i=i+50
   l=l+50


Next
0
Rejoignez-nous