https://segmentfault.com/a/11...上一篇文章简单介绍了质心坐标系,这里再也不重复。segmentfault
标准化坐标:spa
知足一下特性的质心坐标,咱们就能够构造插值:3d
这样,咱们就能够已知的顶点对未知的点进行插值:orm
下面结合一种实际应用的例子:
在对一幅图像进行图像变形时,若是咱们选定了一个边界(多边形),咱们能够对这个多边形进行三角化(即将其分割成若干个三角形,在计算几何中称为Triangulation)。blog
而后对每个三角形计算求得其每一个顶点v的重心坐标bi(i=1~N)。
经过bi(i=1~N),咱们代入变形后的多边形顶点fi(i=1~N),计算出对应的点F(即为原始三角形的顶点经过插值计算后对应的点),F的像素值应设置为原始的顶点vi的像素。ip
对于变形后的三角形(顶点为上一步计算获得的F)内部的点,咱们经过https://segmentfault.com/a/11...的方法将变形后的多边形的a,b,c遍历求得内部点target_point_k,而后将a,b,c代入原始的三角形旧的点origin_point_k,点target_point_k的像素就应该为点origin_point_k的像素值。get
求重心坐标的几种方法:it
这种变形被称为Cage based image deformation,原始的多边形称为一个 cage,在改变 cage 的形状以后,其内部的点会根据边界的变化作相应的改变。在cage based image deformation中,能够认为内部点的重心坐标在 cage 形状改变的过程当中是不发生变化的,这样就能够根据重心坐标创建一个对应关系,从而求得变化后的图像。对每一个三角形内部点,并计算出这些点关于三角形三个顶点的重心坐标。在实时拖动的过程当中,将当前重心坐标代入原图像中,获得变换的原像(像素点),从而可获得该点所对应的像素值io
参考资料:https://zh.wikipedia.org/wiki...
http://www.xuetangx.com/cours...
http://www.inf.usi.ch/faculty...form