Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Видимость дороги в профиле, быстрый расчет видимости дороги в профил 
:(
    Опции темы
Breed
Дата 19.4.2006, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Можно в принципе искать участки выпуклости(вниз) ломаной, тогда из всех точек такого участка будет гарантированная видимость до его конца. Потом можно соседние участки(конечная точка первого участка это есть первая точка второго) объединять: если из какой - либо точки первого участка выпуклости видно вторую точку следующего участка, то из нее видно весь следующий участок, в противном случае область видимости ограничивается концом первого участка...

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

Только вот будут ли полезны подобные ухищрения?...  
PM MAIL   Вверх
nostromo
Дата 19.4.2006, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



То maxim1000:

Насколько я понимаю, задача состоит в нахождении максимальной области видимости при фиксированном положении наблюдателя. При этом Ваш первоначальный алгоритм имел квадратичную сложность, а я предложил модификацию линейной сложности. Как понимать выражение: "когда мы спускаемся в точку 2"? 
Если наблюдатель находится в точке 2, то, согласно моему алгоритму нужно последовательно проверять точки 3, 4, 5, ..., следя лишь за тем, чтобы угол не именьшался.  
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
Breed
Дата 19.4.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Цитата(nostromo @  19.4.2006,  08:50 Найти цитируемый пост)
Насколько я понимаю, задача состоит в нахождении максимальной области видимости при фиксированном положении наблюдателя.


Задача состоит в нахождении области видимости в КАЖДОЙ ТОЧКЕ разбиения трассы. 
PM MAIL   Вверх
nostromo
Дата 19.4.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Что-то мне опять неповезло  smile 

-----------------------------------------------

Цитата

Только вот будут ли полезны подобные ухищрения?...


Мне кажется, что вполне нормальный алгоритм. 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
maxim1000
Дата 19.4.2006, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(nostromo @  19.4.2006,  07:50 Найти цитируемый пост)
Насколько я понимаю, задача состоит в нахождении максимальной области видимости при фиксированном положении наблюдателя. При этом Ваш первоначальный алгоритм имел квадратичную сложность,

нет-нет-нет
для фиксированного наблюдателя мой алгоритм имеет линейную сложность - это же простой перебор точек после него и проверка какого-то условия (которая требует постоянное количество операций)

а вот алгоритм вычисления этого значения для всех возможных позиций наблюдателя уже получается квадратичным...

Цитата(Breed @  19.4.2006,  06:21 Найти цитируемый пост)
Только вот будут ли полезны подобные ухищрения?...

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


--------------------
qqq
PM WWW   Вверх
Breed
Дата 19.4.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Вообще, если имеется вогнутая ломаная (вверх) А[i..k], то найдя область видимости для А[i](например она есть до точки А[l], l<k), можно для точки A[i+1] начинать поиск с l-той точки, так как все точки до l будут гарантированно видны из А[i+1], так что в принципе видимость находится за линейное время. 
при переходе от вогнутой области к выпуклой, если из точки вогнутой области видна вторая точка выпуклой области, то вся выпуклая область видна из нее. Здесь вроде  тоже линейно.

Осталось придумать, что делать с переходами от выпуклой области к вогнутой.
И с ломаными типа /\/\/\/\/\/\... 
хы... :-) 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.