Добрый вечер.
Изучая тему матричных преобразований, остановился на задаче "Изменение масштаба фигуры в 1.3 раза вдоль вектора".
Дано: точка P (x1,y1), задающая вектор относительно начала координат.
Необходимо: найти матрицу преобразования, изменяющую масштаб фигуры в 1.3 раза вдоль вектора P.
Ход моих рассуждений:
1. Матрица преобразования имеет вид:
где коэффициенты a и d отвечают соответственно за масштабирование вдоль осей x и y, а коэффициенты с и b за сдвиг вдоль соответствующих осей.
2. Так как масштабирование фигуры ведется в 1.3 раза, то сумма приращений (относительно 1) коэффициентов a и d должна быть равна 0.3, а сами эти коэффициенты расчитываются относительно координат вектора P:
3. Остается найти коэффициенты c и b. Мы масштабируем вдоль вектора и следовательно необходимо, чтобы угол, на который производится масштабирование и сдвиг (относительно соответствующих осей) совпадал с углом между вектором P и соответствующими осями. Отсюда:
И остается только записать матрицу преобразования.
Не могу найти ошибку в рассуждениях. На практике преобразование также выполняется неверно. Например при масштабировании вдоль вектора (1000,1) получается матрица:
Что в итоге не изменяет некоторые точки вовсе из-за особенностей матрицы.
Помогите, пожалуйста, разобраться. Заранее благодарю.