IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Les tracés en Vb Net 2003; le mystère!


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Enseignant
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Par défaut Les tracés en Vb Net 2003; le mystère!
    J'ai été initié a à VB 6 et sui en en initiation de VB Net 2003 par les ouvrages de Diane Zak
    Excellente pédagogue, mais que de la bureautique! Si on ne veut pas programmer pour le Net, on voit mal à ce niveau l'avantage du VB Net!

    Pour les constructions graphiques, représentation des fonctions affine et du 2e degré , paraboles etc....un jeu d'enfant avec VB 6 avec le Pset(x,y) et une boucle for next! C'est le langage Basic (du MS DOS) repris en compte sans déclarations spéciales, et les tracés immédiats!
    Dans un autre livre, j'ai pu récupérer pour VB Net 2003, le seul tracé de la droite (Puis des cercles, rectangles ellipse dont je n'ai que faire).
    Toute une messe de déclarations pour une simple droite! Et résoudre graphiquement avec ce seul outil droite, un système de droites y = ax + b m'a demandé une mine d'astuces et 4 boucles imbriquées contre une seule en VB6.

    Et je n'ai jamais retouvé le point, élément de base pour toute représentation graphique.. Le pset(x,y) est mort !

    Quant à printForm disparu, oublions! Pour imprimer, quelle galère !

    Voyez: For x = n1 to n2 : y = a/x : pset(x,y) :next x
    Et vous avez votre hyperbole en VB 6.
    En VB Net, mystère, et sûrement complexité horible ! Tout comme les changements de formulaire qu'il faut déclarer... et j'en passe !
    Et je me demande si je ne dois pas revenir au VB 6!
    Votre avis ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Les possibilités graphiques sont toujours là, seulement on ne les utilise plus de la même façon. Par exemple, pour dessiner sur un Panel, il faut gérer l'évènement Paint de ce Panel. Dans les paramètres de l'évènement, il y a un objet Graphics, qui publie de nombreuses méthodes de dessin.
    Il n'y a effectivement plus de fonction pour afficher un point seul... mais dans ton cas, tu peux faire autrement: au lieu de dessiner les points un par un, tu peux dessiner une ligne entre 2 points consécutifs avec la fonction DrawLine. Pour l'objet Pen que cette fonction prend en paramètre, tu peux utiliser un des objets prédéfinis, comme Pens.Black ou Pens.Blue.

  3. #3
    Membre averti
    Profil pro
    Enseignant
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Les possibilités graphiques sont toujours là, seulement on ne les utilise plus de la même façon. Par exemple, pour dessiner sur un Panel, il faut gérer l'évènement Paint de ce Panel. Dans les paramètres de l'évènement, il y a un objet Graphics, qui publie de nombreuses méthodes de dessin.
    Il n'y a effectivement plus de fonction pour afficher un point seul... mais dans ton cas, tu peux faire autrement: au lieu de dessiner les points un par un, tu peux dessiner une ligne entre 2 points consécutifs avec la fonction DrawLine. Pour l'objet Pen que cette fonction prend en paramètre, tu peux utiliser un des objets prédéfinis, comme Pens.Black ou Pens.Blue.
    Muni de ce seul outil, c'est l'idée que j'ai eu! Et je te remercie!
    Mais comment alors tracer une parabole ou une hyperbole représentant une fonction ?
    VB Net et 100 fois plus compliqué que VB6, je trouve! Tout ce qu'il fait, il change les instructions, pour arriver idem en bureautique, et complètement étriqué et complexe graphiquement!

    Obligé de développer un for next pour les points de départ et un autre pour ceux d'arrivée... (3 lignes seulement en vb 6).
    Note: x0 = 18 * x + 400
    y0 = -18 * y + 280 sont seulement MES formules de changement de mon repère tracé et gradué.

    ' Droite 1

    For x = -300 To 300 Step 5
    y = (c1 - a1 * x) / b1
    x0 = 18 * x + 400
    y0 = -18 * y + 280

    For xn = -300 To 300 Step 5
    yn = (c1 - a1 * xn) / b1
    x1 = 18 * xn + 400
    y1 = -18 * yn + 280
    GraphicsFun.DrawLine(PenColor, x0, y0, x1, y1)
    Next xn
    Next x

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    je vois pas pourquoi 2 boucles
    il suffit d'avoir 2 objets drawing.point
    un pour l'ancien et un pour le nouveau calculé dans la boucle
    et une ligne entre les 2
    puis old = new

    .net n'est pas plus compliqué que vb6 pour ce genre de choses quand meme !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Profil pro
    Enseignant
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    je vois pas pourquoi 2 boucles
    il suffit d'avoir 2 objets drawing.point
    un pour l'ancien et un pour le nouveau calculé dans la boucle
    et une ligne entre les 2
    puis old = new

    .net n'est pas plus compliqué que vb6 pour ce genre de choses quand meme !
    Bon, je suis en initition en VB Net 2003, et je sais peu de choses, rien en graphisme!
    Et je te remercie de ton conseil (Pas trop compris d'ailleurs et pour cause)


    Plus compliqué le Net, ah si!
    Vois déjà le préambule pour une simple droite:

    Dim x, y, x1, y1, x0, y0 As Single
    Dim xn, yn As Single

    Dim GraphicsFun As System.Drawing.Graphics

    GraphicsFun = Me.CreateGraphics

    Dim PenColorAxe1 As New System.Drawing.Pen(System.Drawing.Color.Black)
    GraphicsFun.DrawLine(PenColor etc, etc

    Alors que vb6 les axes étant tracés selon son choix.....(Idem en Net)
    Puis :
    for x = n1 to n2
    y = a*¨x^2 + b *x + c
    pset (x,y)
    Netx x

    Et hop! 4 lignes ! La parabole 2e du degré est tracée sans appel à une classe, ni rien d'autre...pas de "grand-Messe" avant...

    Alors que je n'ai toujours pas trouvé de réponses à ma question : comment tracer simplement la représentation des fonctions y = n/x et
    y = ax² + by + c par exemple ?


    Et j'ai déjà 2 livres: Diane Zak et Michael Halvorson de Microsoft!

    Pour Zak = silence ! Des factures ! Seul le deuxième de MS aborde le graphisme : 2 pages vite fait...pour une droite, un rectangle un cercle...et débrouille toi! Comme si ceci était tabou, d'un autre niveau...
    Même le basic de Ms Dos on pouvait même tracer la représentation graphique de fonctions du 1er, 2e ou 3e degré en quelques lignes simples, des fonctions Sinus....selon un principe identique ...
    Du basic, ou Turbo Basic, j'ai au moins 10 livres où c'est expliqué, ainsi l'algo d'Euclide etc...ce que, intelligemment, reprend en compatibilité VB 6.
    Merci et à plus tard !

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il suffit de connaitre 1 millionième des possibilités graphiques du framework pour faire ca, je comprends pas ton problème


    pour tracer une courbe, on fait évoluer X dans une boucle for et on calcule Y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim old_pt, new_pt as System.Drawing.Point
    for x blabla ...
      new_pt.x = x
      new_pt.y = calcul de y
      me.Creategraphics.Drawline(old_pt,new_pt)
      old_pt = new_pt
    next

    il ne reste plus qu'à gérer le premier tour ou old_pt est à 0;0, surement calculer un old_pt pour le 1er x

    y a quoi de compliqué la dedans ??

    une fois que t'auras compris tout ca, si l'affichage est pas rapide, fais des recherches sur bufferedgraphics
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Paray11 Voir le message
    Mais comment alors tracer une parabole ou une hyperbole représentant une fonction ?
    En utilisant la bibliothèque zedGraph (par exemple) et en n'essayant pas de réinventer l'eau chaude.(car c'est toujours très chronophage).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net 2003] Annuler les dernieres modifications d'une base de donnée
    Par winny107 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/10/2006, 07h05
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. [IDE][VS.NET 2003] Y a-t-il une liste des racourcis ?
    Par 404Found dans le forum Contribuez
    Réponses: 2
    Dernier message: 22/06/2004, 20h20
  4. VS .NET 2003 et DirectX 9
    Par GreenPhoenix dans le forum DirectX
    Réponses: 5
    Dernier message: 04/02/2004, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo