Plattform:WPF 3D: modèle Zoom avec pointeur souris coordonnées comme centre
- 3,5 .NET avec C#
- WPF
- 3DTools
J'utilise 3DTools de le site Codeplex (3D Tools) pour la rotation et le panoramique de modèles 3D. Cela fonctionne bien. La classe Trackball contient également une méthode pour zoomer des modèles avec la molette de la souris. Cependant, cette méthode met toujours à l'échelle le modèle avec Point (0,0,0) comme centre du zoom. Mais je voudrais zoomer sur les coordonnées du pointeur de la souris (comme Google Maps, ici vous ne faites pas de zoom au centre de la carte mais aux coordonnées du pointeur de la souris).
J'ai essayé différentes choses à résoudre ce problème:
- mis CenterX/Y/Z de l'objet ScaleTransform3D de la classe trackball au pointeur de la souris coordonne -> il ne fonctionne pas
- Panoramique du modèle après le zoom -> n'a pas fonctionné aussi; parce que les coordonnées du pointeur de la souris ne changent pas, donc je ne peux pas calculer la distance de panoramique, par ex.
- MousePointer Coordonnées avant le zoom -> 334, 210
- appel Zoom (-e.Delta) de la classe Trackball
- MousePointer Coordonnées après le zoom -> 334, 210
- si le MousePointer Coordonnées changerait , par exemple 330, 205, je pourrais un panoramique du modèle 4 points de gauche et 5 points vers le haut (mon programme dispose également d'un mode 2D et il les coordonnées modifier)
- déplacer la position de la caméra -> ne fonctionne pas; en fonction de la position actuelle de la caméra et la MouseWheelEventArgs.Delta je calcule la nouvelle position de la caméra
A quelqu'un une idée de comment ce problème peut être résolu?