filou26
Messages postés37Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention16 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és121Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 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
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és37Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention16 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és121Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 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
7 févr. 2007 à 09:33
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
6 févr. 2007 à 12:27
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
6 févr. 2007 à 09:52
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
5 févr. 2007 à 18:08
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