[JS] Zoom, calculs, etc..

Résolu/Fermé
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 26 août 2008 à 14:11
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 26 août 2008 à 15:22
Bonjour,

Je suis entrain de faire un explorateur de map pour un projet, et la je fais la fonction "zoom"

Mais j'ai un petit problème.

En effet, pour zoomé, il faut utilisé la molette, pas de problème la.
Mais après j'aimerais que l'endroit ou se trouve la souris ne varie pas apres le zoom..

Je m'explique, si ma souris est sur la cime d'un arbre, je zoom, j'aimerais qu'après le zoom, elle soit toujours sur la cime de l'arbre.

Et donc mon problème est de savoir de combien je dois décalé le tout pour faire correspondre les points..

J'ai donc transformé sa en problème de maths:
http://imageshack-france.com/out.php/i198053_fuck.png

Le cadre noir est l'affichage actuel, le cadre zone où l'ont va zoom, et le point rouge la souris
L'image du bas est le morceau en haut a gauche de l'image du haut.

Il me suffit juste de trouvé de combien je dois décalé en haut, et a gauche, le reste se fait tout seul.

donc pour se faire j'ai fais sa:

tmpX = ((explorer.zoom - oldZoom) / 100) * (_mouseX * (100 / oldZoom));
tmpY = ((explorer.zoom - oldZoom) / 100) * (_mouseY * (100 / oldZoom));


Où:
explorer.zoom = Le zoom au quel on sera (En pourcentage par rapport aux images réels, 100% => Taille normal, 50% Deux fois plus petit)
oldZoom = Le zoom actuel (Meme principe que l'autre)
_mouseX/Y = La position de la souris par rapport a l'angle haut-droit du cadre

Mais bon, cela ne marche pas bien..

Donc si quelqu'un pouvait m'aider =)

Voila l'url de ma page:
http://tillersama.hd.free.fr/Midgard-Conquest/Administration/?p=5&sp=1
A voir également:

1 réponse

Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 211
26 août 2008 à 15:22
Probleme réglé, merci de votre soutiens..
1