Как получить координату внутренней точки треугольника после его деформации? - PullRequest
0 голосов
/ 19 января 2012

Предположим, что в 2D есть недоформированный треугольник ABC. Внутри этого треугольника есть точка P. Затем треугольник «Азбука» как-то деформируется, в том числе деформируется его внутренняя точка. Как я могу найти новые координаты точки 'P'?

Я думаю, что должен быть способ представления точки 'P' как:

P = k1*A + k2*B + k3*C, где k1, k2, k3 - некоторые коэффициенты. Тогда мы можем просто использовать эту формулу для деформированного треугольника. Но я не понимаю, как найти эти коэффициенты в общем случае.

PS: Как я понимаю, текстуры opengl работают таким образом.

1 Ответ

1 голос
/ 19 января 2012

Думайте о треугольнике как о двух векторах, имеющих общее начало - v1 - это вектор от A до B, v2 - это вектор от A до C. Нам не нужно беспокоиться о подразумеваемом векторе из B в C.Все внутреннее пространство треугольника можно отобразить, взяв линейные комбинации v1 и v2, где коэффициенты масштабируются от 0 до 1. Так что, если коэффициенты равны (0,0), у меня снова будет исходная вершина A.Обратите внимание, что полный набор возможностей здесь фактически отображает четырехугольник - (1,1) будет точкой вне вашего данного треугольника.Тем не менее, для данной внутренней точки вы можете отобразить ее в пространстве, образованном v1, v2, и получить пару коэффициентов.Если мы нарисуем линию от A до внутренней точки, это будет некоторый вектор P;коэффициент для v1 будет просто точечным произведением P и v1;аналогично для v2.

Тогда для деформированного треугольника деформированное внутреннее пространство является теми же коэффициентами, спроецированными против нового v1, v2, образованного новыми вершинами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...