Bonjour,
J'ai un souci graphique avec mon logiciel...un logiciel de mesure de giration de bateau... je trace ds une picturebox un graph a l aide d un tableau qui reproduit les données d'un gps...
Pour pouvoir tester le soft j ai un simulateur qui trace des ronds d'un diametre precis et selon une vitesse que l on determine. je suis censé recuperer un rond parfaitement "rond" hors ce n est pas le cas.
je recupere une sorte de pentatoïde dont la largeur ne fait pas la taille voulu. je souhaiterais modifier ce pb mais je ne sais pas de quelle maniere. .. je pensais en modifiant la largeur de ma picturebox mais ça ne modifie pas le graph?
qq auait une idée svp?
Récupérer où ? Comment ?
Le monde de la programmation est mal fait :)
Selon le périphérique où l'on fait le tracé (Fenêtre, imprimantes, table traçants), il n'est pas garanti que les proportions des graphiques soient conservées. C'est dépendant des systèmes de coordonnées, pas nécessairement orthonormés, et définis pour chaque périphériques (au niveau du système et au niveau du logiciel), et ça peut même dépendre des systèmes d'exploitation.
Par exemple une simple capture d'écran sous Linux (72 pixels au pouce logique) va se retrouver déformée sous Windows (96 pixels au pouce logique)
Bref, il faudrait préciser un peu ce que tu veux faire.
Pour ton programme, normalement, s'il est bien écrit, le tracé qu'il contient ne devrait pas dépendre de la largeur de la fenêtre. Eventuellement de la hauteur ET de la largeur en même temps mais pas d'une seule dimension. Sinon un redimensionnement de la fenêtre provoquerait des comportements ridicules.
Si ça se trouve, ton programme travaille déjà dans un système non orthonormé. C'est la première chose qu'il faudrait vérifier.
merci pour ta reponse
de quelle maniere je peux savoir si je travaille ds un repere orthonormé?stp?
Et bien je vois trois méthodes possibles
1) Demander à l'auteur initial du programme.
2) Lire dans une boule de cristal.
3) Lire et comprendre le code.
Ceci dit, tu n'as toujours pas dit ce que "récupérer" signifiait pour toi. Ce qui n'aide pas pour t'aider ou t'aiguiller vers une solution.
un logiciel m'envoi sur la prise rs232 à laide d'un gps ce que l on appelle un code NMEA cad une position de longitude et de latitude environ tt les secondes...les points sont relevés ds un tableau et ensuite le tt est reproduit ds une picturebox...
Le rond n'est pas rond mais pas rond de n'importe quelle maniere...j ai un outil graphique qui me permet de mesurer le diametre du cercle...et je sais quelle diametre de cercle j envoi en traitement le pb est que j ai une erreure horizontale d'environ 10% d'ou la forme d un oeuf a l arrivée...les causes peuvent etre multiples
1.j ai regarder ds le dimenssionnement de ma picturebox ...ss succés...
2.ça vient peut etre de ma formule de latitude (que je ne retrouve pas encore ds le prog telment il est fait de maniere complexe...)
3. je suis parvenu a rectifier la taille du cercle en fin de parcours (du bateau/une fois le cercle complet tracé) grace a une fonction qui redissine et redimenssionne le cas echeant le cercle a le bonne echelle j ai simplement multiplié les X par 1.14... ça reste une bidouille.
Je seche un peu par manque de connaissances VB j ai eu une piste concernant les Screen.TwipsPerPixelX et Screen.TwipsPerPixelY mais je ne sais pas ou les trouver
Si tu souhaites que je te presente un peu mon code pour eclairer ta curiosite il n y pas de pb( mon but n est pas que tu fasses mon programme mais effectivement de m éclairer) l ensemble du systeme ( de giration) comprend un prog de 10 pages+1 module qui détermine les variables...mais en effet si tu veux m aider plutot que de jouer au devinette il y a peut etre qq petite chose qui t eclairais, une vision de programmeur experimenté me semble nécessaire;)
Ah, voilà qui est clair. On sait que l'on a des coordonnées réelles et qu'il faut les rendre dans un dessin écran.
On sait qu'il ne s'agit pas de copier un graphique d'une fenêtre vers l'imprimantepar exemple. Ta question initiale laissait planer le flou total.
LoL :)
???
Le voilà qui recommence.
Mesurer où quoi comment ? Directement dans la PictureBox ?? Quel outil graphique ?
Ce qui semble le plus important
Certes.
Certes on l'a déjà dit
Dans ce cas je ne comprends plus. Tu dis savoir quel diamètre du cercle tu envoies en traitement. Comment tu peux le savoir si tu soupçonnes une formule de latitude qui à priori se situe en amont dans le programme ?
Et puis aussi, question qui me démange depuis un bon moment, comment es tu sûr que la trajectoire du bâteau est parfaitement circulaire ?
Ah ?
On peut dire ça comme ça.
Tu peux bien en mettre des petits bouts ici afin de les proposer à la sagacité de tout le monde. La difficulté étant pour toi de repérer les bouts relatifs à ton problème si je te suis bien.
Ah, c'est un tout petit programme alors :)
Maintenant que j'y vois un peu (seulement un peu) plus clair. Je te suggère deux choses
1: regarde dans l'outil Visual Basic lui même et non dans ton programme. Il y a une fenêtre "Propriétés"
Sous l'onglet "Par catégorie" va voir si par hasard les propriétés d'échelle n'auraient pas été définies ici
2: dans code. il faut commencer par essayer de repérer les bouts concernés. Depuis l'éditeur, essaie de faire un recherche du mot Scale dans le code. Si tu as de la chance...