Lecteur de plan numérique

Soyez le premier à donner votre avis sur cette source.

Vue 6 292 fois - Téléchargée 759 fois

Description

il s'agit d'un début de prog qui dessine un plan numérique en fonction des coordonnées des sommets des contours.
il possède un zoom+,un zoom- un glissé du plan à la souris et avec ascenseurs

Source / Exemple :


voir le zip

Conclusion :


en fait je suis débutant niveau 0 et je me lance dans l'étude d'un lecteur numérique de carte
je vous livre donc le fruit de mon travail mais évidemment je bloque dans beaucoup de domaines
notamment:
1-En zoomant beaucoup le plan est tronqué car la picturebox a des limites en taille
2-le glissé ne fonctionne qu'à partir d'un certain niveau de zoom sais pas pourquoi
3-l'idéal ce serait de glisser le plan et qu'il se régénère au fur et à mesure de façon à le lire en continu mais sais pas faire
4-n'y a il pas d'autre méthode pour le zoom ,celle là marche bien mais est trés lente,surtout avec encore plus de points à lire
si donc vous pouvez me donner un coup de main ,sympa

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
37
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
16 juin 2008

grand merci david
c'est ce que je cherchais
mais je ne comprends pas ce que tu appelles deltax et deltay,
les "facteurs de déplacement"
en effet je vois bien que les coordonnées écran obtenues aprés zoom sont décalées mais je coince à nouveau..peux tu m'éclairer ?
à part ça , à quoi fais tu allusion quand tu parles de
méthode plus rapide qu'une picturebox comme conteneur ?
à un moment ,j'ai pensé qu'il était possible de travailler
dans une image virtuelle et de ne faire apparaître le résultat qu'à la fin dans un conteneur mais je n'ai rien trouvé là-dessus pour me guider ;est à cela que tu fais allusion?
grand merci à nouveau pour ton aide précieuse
philippe
Messages postés
121
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
29 avril 2009

Salut,

Ne déplace pas la picturebox, tu l'utiliseras de préférence uniquement comme conteneur (il existe d'autres méthodes plus rapides encore que celle-ci) mais gères directement le déplacement de la carte au niveau des points;

Pour dessiner un Point P(X,Y) dans une Picture1, tu utiliseras un algo du genre

XScr=(X-MX)*Zoom+Picture1.Width/2-DeltaX
YScr=(Picture1.Height/2)-((Y-MY)*Zoom-DeltaY)

où M(MX,MY) est le point milieu de ta carte. Dans ce cas, on permet à l'ordinateur de dessiner une carte codée dans le cadran I sur les coordonnées écran qui sont relative au cadran II (l'ordonnée est inversée à l'écran).
DeltaX et DeltaY sont les facteurs de déplacement.

(l'algo est jeté comme ça, testes car il se peut qu'il y ai des erreurs ;-) désolé...)

David
Messages postés
37
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
16 juin 2008

merci david
hier,j'ai avancé et en fait je me suis aperçu
de ce que tu dis,je laisse tomber les propriétés
scaleheight et scalewidth ,c'est trop lent
donc je multiplie mes coordonnées par un facteur zoom et avec un autoredraw de la picturebox à false, ça marche super vite.
de plus je ne suis plus limité dans la taille de ma picturebox
alors mes problêmes 1-2-3 ducoup me paraîssent réglés
par contre je peine sur le zoom
comment faire pour que en zoomant le dessin reste centré à l'écran là je broute depuis longtemps ,je ne m'en sors pas
il s'agit là aussi d'un algorithme entre le facteur zoom et le déplacement de la picturebox mais je ne le trouve pas
à l'aide...merci
Messages postés
121
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
29 avril 2009

Salut,
C'est un dessin vectoriel, donc l'amélioration des points 1, 2, 3 et 4 est résolue par la recherche d'un algorithme de dessin qui prends en compte les zooms et tout et tout... (Ne laisse pas VB s'en charger, ça te bouffera toute tes ressources pour pas grand chose...)
David

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.