我们假设2D中存在一个三角形ABC
。此三角形内有一个点P
。然后三角形'ABC'以某种方式变形,包括它内点的变形。如何找到点'P'的新坐标?
我认为应该有一种方法将点'P'表示为:
P = k1*A + k2*B + k3*C
,其中k1, k2, k3
是一些系数。然后我们可以将这个公式用于变形三角形。但我不明白如何在一般情况下找到这些系数。
PS:据我所知,opengl纹理以这种方式工作。
答案 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相同的系数。