Я пишу программу, использующую OpenGL, и пытаюсь написать функцию, которая позволяет пользователю нажимать на треугольник и увеличивать / уменьшать размер треугольника, нажимая клавиши на клавиатуре.Я понимаю, как справляться с нажатиями клавиш, но у меня возникли небольшие проблемы с математикой.
Если у меня сохранены три вершины треугольника и центральная точка, как я могу масштабировать треугольник?Другими словами, как я могу манипулировать текущими вершинами, чтобы увеличить треугольник, не изменяя центральную точку?
Это была моя первая попытка масштабирования, где v1, v2 и v3 - вершинытреугольник, A, B и C - вершины треугольника после увеличения:
//distance from center to v1
double distance = center - v1;
distance = distance * 1.25;
Vector3d A = center + distance;
v1(0) = A(0);
v1(1) = A(1);
// v2
distance = center - center;
distance = distance * 1.25;
Vector3d B = center + distance;
v2(0) = B(0);
v2(1) = B(1);
// v3
distance = center - v3;
distance = distance * 1.25;
Vector3d C = center + distance;
v3(0) = C(0);
v3(1) = C(1);
edit: я использую библиотеку Eigen, поэтому v1 (0) означает x-координату вершины v1а v1 (1) означает y-координату вершины v1