For triangles, as well as other planar shapes, there's an affine mapping from parametric space to object space, said M.
In parametric space, we know the parametric coordiantes for 3 triangle corners are (u0, v0), (u1, v1), (u2, v2) respectively.
While in object space, the 3D coordinates for 3 triangle corners are P0, P1, P2.
So with the mapping M, we can transform the difference vectors (du1, dv1) = (u1 - u0, v1 - v0), and (du2, dv2) = (u2 - u0, v2 - v0) to the difference vectors in object space, said dP1 = P1 - P0, dP2 = P2 - P0, dP1, dP2 are 3D vectors.
The equation looks like:
(dP1) (du1 dv1)
| | = | | * M
(dP2) (du2 dv2)
Assume M = (K1, K2), K1, K2 are 3D vectors, the equation can be rewritten with:
(dP1) (du1 dv1) (K1)
| | = | | * | | (1)
(dP2) (du2 dv2) (K2)
Solve K1, K2, we get:
(K1) (du1 dv1) (dP1)
| | = INV| | * | |
(K2) (du2 dv2) (dP2)
Now we need to understand what are K1, K2, using equation (1) we have:
dPdu * du = (du 0) * (K1) = K1 * du, thus we know dPdu = K1
(K2)
Similarly,
dPdv * dv = (0 dv) * (K1) = K1 * dv, thus we know dPdv = K2
(K2)
Finally we got:
(dPdu) (du1 dv1) (dP1)
| | = INV| | * | |
(dPdv) (du2 dv2) (dP2)
Which satisfies:
P(u + du, v) = P(u, v) + dPdu * du
P(u, v + dv) = P(u, v) + dPdv * dv