Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нарисовать зеркальную картинку. [D6, XP]


Drowsy ©   (2013-01-27 06:59:00) 

есть библиотечная процедура, которая картинку из файла рисует на канве.
параметры картинки (высоту, ширину, точку привязки)  возвращает в Entities.

procedure DrawEntity(CanvasHandle : HDC ; Entities : TEntities;
                               x : real;y : real ;const angle : integer =0);
stdcall; external
'GRAPH_DDL.dll' name
'@DrawEntity$qqspvr8Entitiesddi'; //'@1

Нужно написать процедуру, которая будет выводить на канву картинку ЗЕРКАЛЬНУЮ, той, которую
рисует DrawEntity.
Какой может быть алгоритм?


antonn   (2013-01-27 22:52:00) [1]

а если доступен canvas, то вообще через copyrect() не заморачиваясь...


Dimka Maslov   (2013-01-27 13:02:00) [2]

Алгоритм построения зеркальной матрицы не слишком отличается от алгоритма построения зеркального массива.

for i := 0 to Count div 2 - 1 do Swap(Item[i], Item[Count - 1 - i])

при этом в свопе меняются местами не отдельные элементы, а строки или столбцы.


MBo   (2013-01-27 07:39:00) [3]

StretchBltcreates a mirror image of a bitmap if the signs of the nWidthSrc and nWidthDest parameters or if the nHeightSrc and nHeightDest parameters differ. If nWidthSrc and nWidthDest have different signs, the function creates a mirror image of the bitmap along the x-axis. If nHeightSrc and nHeightDest have different signs, the function creates a mirror image of the bitmap along the y-axis.

или установить аффинное преобразование с отражением (SetWorldTransform) и отрисовать  картинку любым образом


bems   (2013-01-27 07:34:00) [4]

попробуй сделать контексту зеркальный SetWorldTransform


Наверх

Титульная страница Поиск, карта сайта Написать письмо