У меня такая же проблема, я просто не понял технического объяснения, пока не прочитал ваш вопрос.Я перевел исходную точку координат мыши, а затем умножил или разделил ее на коэффициент, чтобы небольшие движения мыши можно было увеличить в большем масштабе, который значительно отстает,
Хотя я не понимал свою проблемуимеет перспективу и поле зрения, то есть мышь движется по экрану или объективу камеры, а масштаб, который я пытаюсь переместить, далеко позади и больше, тем не менее, я сделал математику, чтобы она работала.просто потому, что я увидел разницу в экспоненциальном масштабировании, это просто
Это то, что я сделал
translated-X = { mouse-X + (screenwidth/2) } / 2.7;
translated-Y = {-mouse-Y + (screenHeight/2)} / 2.8;
, и метод с текущими значениями хорошо переводит для моих текущих настроек, которые
- камера находится в (0,0,260)
- для каждого элемента, у которого есть координаты (x, y, 0), поэтому они лежат в X & Y плоскость
- мое разрешение экрана, PreferredBackBufferWidthxHeight равно 1024 x 768
только для трех вышеприведенных условий мое уравнение работает.
но если изменить какое-либо из вышеуказанных значений, мне придется скорректировать уравнения в соответствии со сценариями, поэтому эти жестко запрограммированные значения 2.7 и 2.8 будут переменными и должны быть рассчитаны в соответствии с положением камеры и разрешением экрана
эти 2.7 и 2.8 содержат шкалу до определенной точки, теперь
Универсальная формула для перевода , я мог бы сформулировать это, используя технику, названную Числовой анализ Я хорош в этом, нодля этого мне нужны данные, которые я не могу получить самостоятельно, мне нужно выяснить расстояние до камеры, настройки перспективы, при которых определенное разрешение полностью находится в поле зрения.
То есть, если мое разрешение 1024x768Исходя из того, на каком расстоянии камеры мы видим исходную точку, мы на самом деле видим 1024 точки вокруг оси x и 768 точек вокруг оси y.Точно так же мне нужно по крайней мере еще два показания для более высоких разрешений.
И я не могу получить эти значения, потому что мой глупый старый монитор поддерживает максимум 1024x768, я не могу пойти выше.Если вы сможете определить расстояние до камеры для нескольких разрешений, я сформулирую соотношение и предложу общую формулу.