很抱歉,如果这是重复的话。我试图在谷歌和Stackoverflow中找到它,但我找不到它。也许我无法正确说出我在寻找的东西。
假设我有一个正方形,里面有积分。比我改变它的要点使四边形。如何在变换后获得点的新坐标?
答案 0 :(得分:1)
对于单位正方形(在原点和长度为1的边上有一个角的正方形)存在规范方法,因为点(x,y)
的坐标可以直接用于在倾斜的四边形内插值,其中点为{ {1}}(对应于orig(x = 0,y = 0)),q00
表示(x = 0,y = 1),q01
表示(x = 1,y = 0 )和q10
for(x = 1,y = 1)。转换后的点是bilinear interpolation:
q11
这种推广的一个概括是将p = (1-x)*(1-y)*q00 + x*(1-y)*q10 + (1-x)*y*q01 + x*y*q11
计算为多边形角的加权平均值(权重必须总和为1)。基于单位平方的四边形的权重是:
p
w = { (1-x)*(1-y); x*(1-y); (1-x)*y; x*y }
q = { q00; q10; q01; q11 }
p = w * q
是点积的地方。通过求解w * q
的{{1}}来计算三角形的权重,其中p0 = w * q0
是原始点,sum(w)=1
是原始角点。
多边形的一般情况有多个解决方案。一种非常好的方法(在我做过的简单测试中)是从覆盖给定点的多边形中的所有角的三元组形成三角形,计算三角形的权重,并将它们的组合权重用于所有角点{{ 1}} p0
。