У меня есть четыре 2d точки, p0 = (x0, y0), p1 = (x1, y1) и т.д., которые образуют четырехугольник. В моем случае квадрат не прямоугольный, но он должен быть хотя бы выпуклым.
p2 --- p3
| |
t | p |
| |
p0 --- p1
s
Я использую билинейную интерполяцию. S и T находятся в пределах [0..1], а интерполированная точка определяется по формуле:
bilerp(s,t) = t*(s*p3+(1-s)*p2) + (1-t)*(s*p1+(1-s)*p0)
Здесь проблема. У меня есть 2d-точка p, которую я знаю, внутри квадрата. Я хочу найти s, t, который даст мне эту точку при использовании билинейной интерполяции.
Существует ли простая формула для инверсии билинейной интерполяции?
Спасибо за решения. Я опубликовал мою реализацию решения Naaff как вики.