Я накладываю некоторые кликабельные горячие точки поверх проприетарного приложения для просмотра панорам во flash (as3), и мне нужно убедиться, что горячие точки масштабируются в соответствии с изменением поля зрения, когда пользователь увеличивает/уменьшает масштаб, но я не уверен, какую формулу использовать.
Я установил максимальное и минимальное поле зрения 90 и 25 соответственно. Мне дали несколько советов о том, как рассчитать масштаб значков:
от производителя программного обеспечения для панорам:
Scale => 1/tan(FoV)
Кажется, это не работает для меня. И:
scalar += (ZOOM_SCALE_UPPER - ZOOM_SCALE_LOWER) * ( ZOOM_LIMIT_OUT - tempFOV )/( ZOOM_LIMIT_OUT-ZOOM_LIMIT_IN) ;
hotspot.scaleX = hotspot.scaleY = scalar;
Подводит меня близко, но в какой-то момент точка доступа перестает масштабироваться, хотя панорама продолжает масштабироваться. Я думал, что могу просто сделать что-то вроде:
diffFOV = previousFOV - currentFOV.
hotspot.scale = currentScale*(1-diffFov)
Но и это не совсем правильно. Все становится слишком большим или слишком маленьким.
Любые идеи?