Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизКак объединить несколько матриц для SetWorldTransform()? Найти похожие ветки
← →
K-1000 © (2016-02-29 17:00) [0]Делаю так:
1. SetWorldTransform().
2. Рисую картинку с поворотом.
3. Сбрасываю трансформ: ModifyWorldTransform(MWT_IDENTITY).
Дело в том, что помимо картинок с поворотом, используется ещё "глобальная" трансформация всего DC. Т.е. нужно как-то объединить матрицы трансформации в одну. Как это сделать?
Знаю, что установленные "до" матрицы можно получить вызвав GetWorldTransform().
← →
han_malign © (2016-02-29 17:26) [1]
> Т.е. нужно как-то объединить матрицы трансформации в одну.
> Как это сделать?
GetWorldTransform(restore)
ModifyWorldTransform(...) - объединить матрицы трансформации в одну
SetWorldTransform(restore) - Сбрасываю трансформ
← →
han_malign © (2016-03-01 08:09) [2]можно еще попробовать
SaveDC
ModifyWorldTransform
...
RestoreDC
- теоретически - это правильней...
← →
K-1000 © (2016-03-01 18:01) [3]
> han_malign ©
Помогла функция CombineTransform().
← →
han_malign © (2016-03-02 12:38) [4]
> Помогла функция CombineTransform().
- я то понял, что у тебя стек трасформаций...
По идее - ModifyWorldTransform(xform, MWT_RIGHTMULTIPLY) это примерно то-же самое, что SetWorldTransform(CombineTransform(GetWorldTransform, xform))
Если с коммутацией не напутал... По формулам
x" = x * eM11 + y * eM21 + eDx;
y" = x * eM12 + y * eM22 + eDy;
- вроде правое умножение (x, y, 1)*XFORM
← →
K-1000 © (2016-03-02 13:32) [5]
> han_malign ©
Хм, не обращал как-то раньше внимания на MWT_RIGHTMULTIPLY. :)
Спасиб, может быть пригодится когда-нибудь.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.073 c