如何在变形后得到三角形内点的坐标?

时间:2012-01-19 14:51:15

标签: math geometry

我们假设2D中存在一个三角形ABC。此三角形内有一个点P。然后三角形'ABC'以某种方式变形,包括它内点的变形。如何找到点'P'的新坐标?

我认为应该有一种方法将点'P'表示为:

P = k1*A + k2*B + k3*C,其中k1, k2, k3是一些系数。然后我们可以将这个公式用于变形三角形。但我不明白如何在一般情况下找到这些系数。

PS:据我所知,opengl纹理以这种方式工作。

1 个答案:

答案 0 :(得分:1)

将三角形视为共享共同原点的两个向量 - v1是从A到B的向量,v2是从A到C的向量。我们不需要担心从B到C的隐含向量。 可以通过采用v1和v2的线性组合来映射三角形的所有内部空间,其中系数从0到1缩放。因此,如果系数是(0,0),则我再次具有原始顶点A.请注意,这里的全部可能性实际上映射出四边形 - (1,1)将是给定三角形之外的一个点。 尽管如此,对于给定的内部点,您可以将其映射到由v1,v2形成的空间并获得系数对。如果我们画一条从A到内点的线,那就是一些向量P; v1的系数只是P和v1的点积;同样适用于v2。

然后,对于变形的三角形,变形的内部空间是与新顶点形成的新v1,v2相同的系数。