Показать сообщение отдельно
  #14 (permalink)  
Старый 06.04.2015, 21:14
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

На языке матриц попробую изложить свою проблему.

У меня есть фигура. Нужно ее масштабировать относительно центра.

У меня есть готовая матрица для масштабирования относительно центра, обозначу ее буквой М1

Фигуру обозначу буквой Ф1

Итого, чтобы масштабировать фигуру мне нужно сделать следующее:

Ф2 = Ф1 * М1

Я получаю новые координаты Ф2

Дело в том, что я эти координаты не сохраняю. Движок отображения работает так: в фигуре хранятся координаты Ф1 и сама матрица М1.

Чтобы мне масштабировать фируру дальше, нужно создать вторую матрицу М2 и сделать следующую операцию

М3 = М1 * М2

Ф3 = Ф1 * М2

Ф3 это координаты фигуры уже послу двух операций масштабирования.

Внимание, проблема. Матрицу масштабирования я без ошибок создаю с учетом, что масштабирование делается относительно определенного центра.

Если я выше описанный цикл операций масштабирования произвожу без смены центра, то все в порядке.

Но если на какой-либо итерации меняется центр, то происходят проблемы (по условиям задачи это требуется). В итоге, получается я неправильно создаю матрицу когда центр меняется.
Ответить с цитированием