笔者最近的一个工作任务中需要修改3d模型上某个点对应的纹理贴图像素值。(这里不过多描述什么是3d模型的纹理贴图及uv纹理坐标,具体概念可参考博文“uv纹理坐标设定与贴图规则”:http://www.cnblogs.com/jenry/p/4083415.html)
主要的问题概况为:
已知两个三角形具有线性映射关系,且已知三角形T1的三个顶点坐标A,B,C,以及三角形内一点P坐标,已知映射三角形T2的三个顶点坐标A',B',C',求点P在三角形T2内的映射坐标点P'。
google搜索到“Barycentric coordinate system”(重心坐标系)的概念感觉可以用,引用wiki上一张图片直观表达什么是三角形的仿射不变性:
图片引用自:重心坐标系概念链接(wiki)https://en.wikipedia.org/wiki/Barycentric_coordinate_system
得知三角形内任意一点可表示为P = k1 * A + k2 * B + k3 * C,且k1 + k2 + k3 = 1.
查资料得知k1,k2,k3与三角形的面积相关,具有以下关系:
k