![]() |
|
|
![]()
|
|
| FataList |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Добрый день.
Есть полигон (многоугольник), который делю на треугольники. Координаты вершин находятся записываются в вектор (масссив вершин полигона).
Написанный код нужно упростить, а именно отсекать треугольники, используя ссылки или указатели. Скорее указатели. Меня посетила мысль(я зевнул и перевернулся на другой бок Во время выполнения кода, будут наступать моменты, когда одна из вершин полигона больше не пригодится, т.е. не сможет соединиться с другими вершинами. И тогда ее следует "отсечь" от исходного вектора. Например, убираем точку 2. На нее "указывают" 1-я и 3-я точка. Делаем так, чтобы 1-я указывала на 3-ю, соответственно 3-я на 1-ю. Отсалось решить, как это реализовать. Может сделать структуру в исходном векторе, и во время его заполнения, "направлять" указатели. Но напрявлять указатели не знамо куда, то плохо. Промежуточные переменные использовать? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Храни треугольники как треугольники, т.е. объекты, состоящие из 3 вершин (можно использовать не точки, а индексы вершин в исходном полигоне). Для того, чтобы помечать некоторые вершины полигона как полностью обработанные, используй параллельный массив флагов. Что с чем можно соединить, определяется автоматически: пропускаем соседние вершины, пока стоят флаги.
В данном случае усложненная структура данных ничем не обоснована: никакого выигрыша, только замутнение алгоритма. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |