javascript - 需要帮助反转此功能
问题描述
我有一个函数,我需要在给定输出的情况下获取输入;
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];
}
x 和 y 始终介于 0.0 和 1.0 之间
我自己尝试过这样做,但是记得一半的过去数学课只会让我得到一些简化为 0=0 的东西
上面的 warp 函数在着色器中用于创建类似 CRT 的失真。我想在屏幕上找到鼠标的位置,并计算出它在 CRT 的原始渲染位置上的位置。不幸的是,我的数学技能不如我的 js 技能。
解决方案
无法反转此功能。此外,这是两个变量的函数,您无法获得两个变量的唯一解。
请注意,此函数看起来单调,其等值线形成椭圆,函数类似于椭圆抛物面
这样你就可以:
- 固定一个变量(即 y = 0),或 x/y 比率
- 使用一些数值求根方法来检索特定的解决方案