Для меня это звучит то, что вам нужно сделать, это преобразовать вектор из полярного представления (угла и радиуса) в декартово представление (координаты х и у), которое должно быть довольно легко. У вас уже есть угол, поэтому вам нужно только получить радиус, который является длиной вектора. В вашем случае (если я правильно понимаю) это расстояние от текущего центра представления, который нужно анимировать в его новую позицию. Хотя может быть сложно точно знать, что именно (из-за этой части того, что вы пытаетесь вычислить), вы можете пойти на безопасную сторону и получить достаточно большое значение, которое, несомненно, выкинет представление из его супер-кадра представления. Длина диагонали супервизора плюс длина диагонали анимированного изображения должна выполнять работу, или даже более простая просто взять сумму высоты и ширины обоих представлений.
Как только у вас есть полное полярное представление вектора (угол и радиус), вы можете использовать that simple formula для преобразования в декартовое представление (x = r * cos (a), y = r * sin (a)) и, наконец, добавить что вектор координаты к центру зрения вам нужно оживить.
Это отлично работает. Только проблема заключается в том, что он перемещает вид в том направлении, в котором он был вытащен из центра, однако (как я уже упоминал), мне нужно, чтобы он двигался в противоположном направлении. Вид немного похож на рогатку, так как вы тянете ее в одном направлении, она должна лететь обратно через представление и с экрана. – user3746428
Обновление: я обнаружил, что проблема связана с кодом, который у меня уже есть. Сейчас все работает отлично. Благодаря! – user3746428