Never mind, got it myself.
For every square defined by two triangles:
gridone = 0, 0 (upper left corner)
gridtwo = 1, 0 (x axis)
gridthree = 0, 1 (y axis)
gridfour = 1, 1 (lower right corner)
function getGridHeight(%x, %y, %gridone, %gridtwo, %gridthree, %gridfour) {
%xp = lerp(%gridone, %gridtwo, %x);
%xb = lerp(%gridthree, %gridfour, %x);
return lerp(%xp, %xb, %y);
}
function lerp(%a, %b, %x) {
return %a + %x * (%b - %a);
}