Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 07.11.2011, 01:01
U.B.M. U.B.M. вне форума
Новичок
 
Регистрация: 06.10.2011
Сообщения: 94
Версия Delphi: Delphi 7
Репутация: 13
По умолчанию

Цитата:
Сообщение от sergej krikovtsov
Суть такая - есть некое изначально повернутое на угол, скажем, 30 градусов изображение. С помощью Дельфи повернуть его в предыдущее положение с как можно меньшими потерями.

Ну так вот. Я бы действовал след. образом после того как перевернул изображение:
1. Обрезать края (при необходимости). Смотрим линию: если она вся белая - не нужна. Таким образом определяем границы полезного изображения и положение цифр (верх/низ).
2. Берем кусок из середины рисунка по всей длине (образно - синюю полоску с триколора РФ). Смотрим на вертикальные линии - если есть небелая точка - значит линию зарисовываем черным.
3. Если принципиально перевернут рисунок с ног на голову или нет - поворачиваем фрагмент (при необходимости) на 180 градусов - шума лишнего не появится
4. Выражаем бурную радость по поводу произошедшего

P.S.
Код:
...
    function RotPoint(PX, PY: Integer): TPoint;
    begin
      DX := PX - Center.x;
      DY := PY - Center.y;
      Result.x := Center.x + Round(DX * CosAng - DY * SinAng);
      Result.y := Center.y + Round(DX * SinAng + DY * CosAng);
    end;
...

Это формулы для поворота осей координат. Если с геометрией дружишь - должен быть вкурсе по них. Шум появляется из-за округления, поскольку координаты пикселя - целые должны быть.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025