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

Windows Forms Discussion :

Problème math : origine


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Problème math : origine
    Bonjour,

    Je suis sur un projet en Visual Basic .Net 2008 et j'ai un petit problème assez mathématique, j'avoue que je coince et votre aide me serait fort utile.

    Voilà, j'ai besoin de tracer des lignes sur une picturebox, pas de problèmes pour cela. Mais j'ai besoin que l'origine du repère ne se trouve pas en haut à gauche comme il l'est naturellement en informatique mais en bas à droite comme il l'est conventionnellement en math, j'effectue donc l'opération suivante sur tous les coordonnées Y que j'ai a saisir : pctEcran.size.height - Y (pctEcran représentant le contrôle conteneur bien entendu).

    Pour rendre la navigation plus facile pour l'utilsiateur (qui a à se déplacer sur le plan représenté par la picturebox) j'ai utilisé deux variables piur stocker les coordonnées X et Y lors de l'événement mouse_down sur le contrôle (dans clic.x et clic.y) puis j'effectue l'opération suivante dans le sub événementiel mouse_up pour obtenir le décalage en abscisse et en ordonnée effectué par la souris de l'utilsiateur : e.x - clic.x et e.y - clic.y (le e étant le paramètre de l'événement mouse_up). C'est un peu complexe, j'espère que je m'explique bien.

    Dernier point (ouf), je possède deux variables (toujours X et Y) représentant l'origine (virtuelle) du repère puisque cette origine change pour s'affiche rà n'importe quel endroit de la picturebox. Le ut étant de créer un plan dans lequel l'utilisateur eut se déplacer horizontalement et verticalement (un peu comme GéoGebra ou des logiciels de géométrie mais sans le déplacement Z en zoom). Mais comme mes valeurs récupérées du déplacement par la souris ont subit la retablissement de l'origine (pctEcran.size.height - Y) et que mon origine virtuelle ne l'a pas subit, je m'y perd. Je suppose qu'il y a une mise en équation là dedans mais j'ai le cerveau en surchauffe et cela fait plusieurs fois que je me frotte au problème sans succès.

    Pouvez-vous, si vous comprenez le problème ou avez déjà eu à faire à cela m'aider ? Je vous en serez très reconnaissant !

    Merci beaucoup de votre attention et merci à Philippe Lassere pour son tutoriel sur VB.NET qui m'a beaucoup aidé dans mon apprentissage du langage. Léo Nicoletti, lycéen.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Crée une fonction :
    - CoordToControl qui transforme les coordonnées de travail en coordonnées du control
    et la fonction inverse :
    - ControlToCoord
    Et plus de soucis

    Les 2 fonctions ont en entrée un point, en sortie un point, et évidement dépendent des facteurs d'echelle horizontaux et verticaux, ainsi que de la translation de l'origine.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci Graffito pour cette réponse,

    J'ai effectivement penser à faire comme cela mais je pensais pouvoir réussir sur ce cas particulier. Je m'en suis donc remis à cette technique qui est très certainement la meilleure. Merci

    J'ai une autre petite question et je profite de ce sujet pour vous la poser si cela ne vous dérange pas. J'ai besoin d'écrire des relations vectorielles et comme les vecteurs sont représentés par une flèche au dessus du caractère je me demandais s'il était possible de combiner en VB.NET (Unicode ?) cette flèche à un caractère pour indiquer un vecteur...

    Merci beaucoup !

Discussions similaires

  1. [PC portable] DELL Vostro 3750 : problèmes multiples, origine inconnue
    Par Darkounet789 dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 09/05/2014, 09h09
  2. Problème d'origine
    Par fab87 dans le forum Qwt
    Réponses: 1
    Dernier message: 02/05/2011, 14h36
  3. Un problème d'origine inconnue
    Par Nitnelave dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 15/03/2008, 18h13
  4. Réponses: 4
    Dernier message: 06/11/2007, 14h05
  5. Problème d'origine inconnue ?
    Par artimedia dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/10/2007, 17h52

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