![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Учиться x 3 )
Регистрация: 06.06.2008
Сообщений: 5
|
![]()
Здравствуйте.
Во вложенном текстовом файле процедура вращения изображения. Объясните пожалуйста словесный алгоритм ее работы в целом и подпрограмм, которые содержатся в процедуре. Заранее спасибо |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
А вам именно эта процедура нужна? Просто есть на много проще.
|
![]() |
![]() |
![]() |
#3 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Все понятно, раз там sin и cos, объясняю не глядя.
Вращение это анимация, один кадр сменяет другой. Алгоритм поворота строит новый кадр. Принцип алгоритма - тригонометрия. Для каждой точки на новом изображении нужно найти точку на исходном, и перенести ее, так мы получим 100 процентное заполнение. Не наоборот, это важно, если искать новое место для исходной точки на новом изображении, то будут пробелы, это связано с округлением результатов от функций синуса или косинуса. Это основная фишка, остальное - детали, не имеющие к вращению прямого отношения. В этом примере перенос пикселей происходит не поштучно, а с помощью ScanLine. Ф-я ScanLine копирует в буфер всю строку пикселей, представляется это все в виде последовательности байт, первый байт - красный цвет первого пикселя (R,G,B), второй байт - зеленый (R,G,B), третий - синий, четвертый байт - красный цвет второго пикселя и так далее. Но это уже особенности работы с битмапами, к вращению не относятся, можно и так переносить: Canvas1.Pixels[x1,y1]:= Canvas2.Pixels[x2,y2].
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#4 |
Учиться x 3 )
Регистрация: 06.06.2008
Сообщений: 5
|
![]()
mutabor, cпасибо вам!
Последний раз редактировалось Илья PHoeNiX; 08.06.2008 в 14:38. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" | ruelCrow | Общие вопросы .NET | 3 | 10.07.2008 23:29 |
Оконная процедура | HunterMan | Win Api | 5 | 04.06.2008 12:10 |
Процедура не работает | Михаил Юрьевич | Общие вопросы Delphi | 4 | 03.06.2008 07:22 |
Процедура () | GAGARIN-NEW | Помощь студентам | 3 | 17.12.2007 21:42 |
процедура | Sergik1977 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 28.10.2007 16:36 |