Мне нужно вычислить касательную, указывающую в том же (x, y) -направлении, что и 2D-вектор от заданной нормали. Вот визуализация:
Направленная касательная из обычной визуализации
Красная плоскость с голубым лучом - это нормальная поверхность, зеленая «стрелка» представляет двумерное направление, а синяя - касательная к нормали с (x, y) -направлением зеленой стрелки. Таким образом, при просмотре сверху (в пространстве объекта, а не на поверхности) для проецирования на 2D зеленый и синий цвет имеют одинаковое направление.
Итак, если это было слишком абстрактно, вот контекст: я делаю моделирование эрозии на графическом процессоре, и для расчета растворения мне нужен трехмерный вектор скорости воды для проверки на столкновение с нормалью ландшафта. Но моделирование ведется в 2D, поэтому у меня есть только 2D вектор скорости. В статье, на которую я ссылаюсь, только отмечается, что программа должна вычислять этот трехмерный вектор по касательной к поверхности местности и двумерному вектору скорости.
Учитывая эту информацию, нормаль и двумерный вектор, какова математика для вычисления упомянутой совпадающей касательной?