У меня есть треугольник: a, b, c. Каждая вершина имеет значение: va, vb, vc. В моем программном обеспечении пользователь тащит точку p внутри и снаружи этого треугольника. Я использую барицентрические координаты, чтобы определить значение vp в p на основе va, vb и vc. Пока что так хорошо.
Теперь я хочу ограничить p так, чтобы vp находился в пределах диапазона min и max. Если пользователь выбирает p, где vp равен < min или > max, как я могу найти точку, ближайшую к p, где vp равно min или max, соответственно?
Изменить: Вот пример, где я тестирую каждую точку. Светло-серый находится в пределах min/max. Как найти уравнения линий, которые составляют границу min/max?

a = 200, 180
b = 300, 220
c = 300, 300
va = 1
vb = 1.4
vc = 3.2
min = 0.5
max = 3.5
Изменить: FWIW, до сих пор я получаю барицентрические координаты v, w для p, используя треугольные вершины a, b, c (стандарт я думаю, но выглядит как this). Затем, чтобы получить vp:
u = 1 - w - v
vp = va * u + vb * w + vc * v
Все в порядке. Моя проблема в том, что мне нужны линейные уравнения для min/max, поэтому я могу выбрать новую позицию для p, когда vp выходит за пределы диапазона. Новое положение для p - это точка, ближайшая к p в строке min или max.
Обратите внимание, что p является координатой XY, а vp является значением для этой координаты, определяемой треугольником, и значениями в каждой вершине. min и max также являются значениями. Упомянутые две линейные уравнения дадут мне XY-координаты, для которых значения, определяемые треугольником, равны min или max.
Не имеет значения, используются ли в решении барицентрические координаты.
