Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Алгоритм генерации развертки выпуклого многоугольника

Поиск:
Алгоритм генерации растрового представления выпуклого многоугольника заданного набором вершин (xi , yi ), i = 0, ..., n-1. Многоугольник закрашивается цветом Color. В качестве выходного устройства используется массив Screen: array[0..ScW-1, 0..ScH-1] of TColor.

Алгоритм закрашивает отрезки сканирующей прямой попадающие внутрь выпуклого многоугольника. Заметим, что границу выпуклого многоугольника можно разбить на две ломаные "левую" и "правую" и, возможно, два ребра "верхнее" и "нижнее" так что каждая из боковых ломаных имеет ровно одно пересечение с каждой сканирующей прямой. Далее используя алгоритм Брезенхема и одновременно генерируя растровое представление для ребер левой и правой части ломаных границ получаем левый и правый пикселы границы многоугольника на каждой сканирующей горизонтальной прямой. Последовательно заполняя интервалы между этими пикселами для каждого значения ординаты от верхней строки развертки до нижней получим растровое представление многоугольника.

Алгоритм выглядит достаточно громоздко, но мне кажется, что он оптимизирован в достаточной степени, если кому-то захочется его усовершенствовать, буду очень благодарен, если пришлете мне результат.






Просмотров: 3463

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную