Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Отсечение полигона


dmk ©   (13.06.17 12:14

Все привет! Никто не занимался отсечением полигонов?

Пытаюсь обрезать треугольник, но не выходит.
1. Точки пересечения нашел и соединил.
2. Сейчас я здесь: http://i92.fastpic.ru/big/2017/0613/d2/ee335948e90dfaba84ba54f6391468d2.jpg

Как добавить угловые точки?! Хотелось бы не только для треугольника, но и для N-угольников.


dmk ©   (13.06.17 12:18[1]

Есть вариант с обходным алгоритмом по границе, но тут возникает вопрос, а как определить в какую сторону N-угольник рисуется? CW или CCW?


Игорь Шевченко ©   (13.06.17 13:37[2]

Я бы тебе посоветовал почитать Фэнь Юаня
"Программирование графики для windows"


dmk ©   (13.06.17 14:40[3]

Есть он у меня. Там только windows-функции рассмотрены. Самих алгоритмов нет.
Перерос я Феня давно :)


Pavia ©   (13.06.17 20:06[4]

Есть куча алгоритмов. www.inf.tsu.ru/library/Publications/2004/46.pdf‎
И на самом деле куча сложностей - которые толком нигде не описаны.
Даже Максим использовал стороннюю библиотеку, сторонний алгоритм http://antigrain.com/about/index.html

Обход по границе работает только для многоугольников без пересечений.
В общем случае надо проверять точка внутри или снаружи по методу луча.

>  но тут возникает вопрос, а как определить в какую сторону
> N-угольник рисуется? CW или CCW?

Есть обще принятый формат хранения. Насколько по мню список рёбер храниться против часовой стрелке.  Но я хотел хранить ещё и флаг рисовать внутри или снаружи.

А определить CW или CCW одинаково как для треугольника или многоугольника. Через векторное произведение.
Для многоугольника просто берём две соседние грани.  Считай что это треугольник.

Лень разгребать, но тут большинство по теме многоугольников
https://yadi.sk/d/a0oUjPEK3K6CFh


dmk ©   (13.06.17 21:14[5]

Pavia ©   (13.06.17 20:06) [4]
Спасибо!

Написал Сазерленда-Ходжмана. Все клево отсекается.

OFFTOP. Я вот думаю, а 2560×1600×35 fps при 15500 прозрачных полигонах для софтверного рендера мало или норм?


Горик ©   (15.06.17 17:26[6]

Удалено модератором


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо