Нужна помощь в изменении этой функции - PullRequest
0 голосов
/ 29 марта 2019

У меня есть функция, которая мне нужна для получения входных данных с учетом выходных данных;

let w = [1/16,1/9];
function warp(x,y){
    return [( x*2-1 ) * (1.0 + Math.pow( y*2-1, 2 ) * w[0]) * 0.5 + 0.5,
            ( y*2-1 ) * (1.0 + Math.pow( x*2-1, 2 ) * w[1]) * 0.5 + 0.5];
}

х и у всегда между 0,0 и 1,0

Я пытался сделать это сам, но наполовину запомненные уроки математики прошлых лет просто приводят к тому, что я получаю что-то, что упрощается до 0 = 0

Вышеуказанная функция деформации используется в шейдере для создания искажения типа ЭЛТ. И я хочу занять положение мыши на экране и выяснить, где находится исходное местоположение рендеринга ЭЛТ. К сожалению, мои математические навыки не соответствуют той же царапине, что и мои навыки js.

1 Ответ

3 голосов
/ 29 марта 2019

Невозможно отменить эту функцию.Кроме того, это функция двух переменных, и вы не можете получить уникальное решение для обеих переменных.

Обратите внимание, что эта функция выглядит монотонной, а ее изолинии образуют эллипсы, функция напоминает эллиптический параболоид

enter image description here

Таким образом, вы можете:

  • исправить одну переменную (т. Е. Y = 0), или отношение x / y
  • использовать некоторое числовое значение метод поиска корня для поиска конкретного решения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...