Зависит от того, что вы хотите, чтобы линия делала. Если вы хотите нарисовать кратчайший путь между двумя точками, это очень сложная проблема - Google "Кратчайший путь на сетке".
Если вы хотите, чтобы 2D-линия проецировалась вертикально на сетку, это сделать гораздо проще. Это не то же самое, что кратчайший путь. Подумайте о высокой горе - кратчайший путь между двумя точками на ее основании, вероятно, идет вокруг горы, а не над ней.
Предполагая, что вы просто мутировали точки на геометрии вашей плоскости с вашими данными о высоте, вам нужно будет проследить линию между вашими двумя точками, выяснить, какие 2D треугольники она пересекает, и соответствующим образом разделить линию. Это довольно просто, но для правильной работы потребуется немало кода.