LECTEUR DE PLAN NUMÉRIQUE

dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009 - 5 févr. 2007 à 18:08
filou26 Messages postés 37 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 16 juin 2008 - 7 févr. 2007 à 09:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41370-lecteur-de-plan-numerique

filou26 Messages postés 37 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 16 juin 2008
7 févr. 2007 à 09:33
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
dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
6 févr. 2007 à 12:27
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
filou26 Messages postés 37 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 16 juin 2008
6 févr. 2007 à 09:52
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
dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
5 févr. 2007 à 18:08
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
Rejoignez-nous