Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Математика

Математика Методы математического моделлирования, программирование математических концепций, роль математики в создании игр

Ответ
 
Опции темы
Старый 11.12.2007, 20:38   #1
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Нахождение точки удовл. правилу Делоне

Дано: массив точек представленых в виде пары координат Х и Y на плоскости. И отрезок соединяющий 2е из точек массива образуя начальное ребро.

Найти такую точку массива чтобы она удовлетворяла следущему правилу:
Окружность описаная вокруг трёх точек(2х точек ребра и искомой) должна быть минимально возможного радиуса из всех возможных вариантов в это массиве.

Решение "влоб" - перебор всех точек (кроме тех что соединены отрезком) и вычисление для каждой тройки точек (2е концы отрезка и текущая выбраная) радиуса описаной окружности. И селекция полученых результатов для выбора наименьшего...

Оценка производительности: O(N-2) в худшем случае и O((N-2)/2) в среднем.

Вопрос как бы это дело ускорить...непребигая к полному перебору...

Возможно есть способы предварительной сортировки...
__________________
(Offline)
 
Ответить с цитированием
Старый 11.12.2007, 21:16   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Нахождение точки удовл. правилу Делоне

SBJoker, хм разумееться есть. Неуверен, но нужно найти такую простенькую формулку, которая находит золотую середину между близости к перпендикуляром и расстоянием (она ведь меньше будет требовать). Либо простой алгоритм, чем больше разница между длинами A-C и B-C (A и B соеденены). Вот, и отпровляя ввыделенный список сразу. Далее если следующий найденный по вычислениям, к примеру разница меж двух длин больше, то ставить за, если меньше, то смещать все эллементы на 1 вправо начиная с промежутка куда вставляем новый. Конечно имхо может быть ещё хуже
(Offline)
 
Ответить с цитированием
Старый 11.12.2007, 21:40   #3
jimon
 
Сообщений: n/a
Re: Нахождение точки удовл. правилу Делоне

имхо юзай деревья
 
Ответить с цитированием
Старый 11.12.2007, 22:00   #4
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Re: Нахождение точки удовл. правилу Делоне

Сообщение от jimon
имхо юзай деревья
Это ясно что деревья... Но как определить какая точка больше? И чтобы создать список всёравно нужно сделать полный перебор всех точек... и дерево будет правильно тока по отношению к текущему отрезку а для других его строить поновой..так что тут дерево ничего недаёт..

Или я что-то недогоняю?
__________________
(Offline)
 
Ответить с цитированием
Старый 11.12.2007, 22:12   #5
jimon
 
Сообщений: n/a
Re: Нахождение точки удовл. правилу Делоне

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

суть в том что в 50% случаем мы найдем ету точку в заданых ветках
aka другими словами - таким способом достигается
простая сортировка по дистанции, самые далекие точки
будут проверятся последними

я вот не помню можно ли через любые 3 точки провести круг
если да - то алгоритм снижается до O(log(N))
но само создание дерева занимает O(N log^2(N))

почитать можеж тут http://en.wikipedia.org/wiki/Kd-tree
http://en.wikipedia.org/wiki/Octree

ps. из-за не знания - минимальный радиус будет с ближайшей точкой ?
или с какой вообще ... :/
 
Ответить с цитированием
Старый 11.12.2007, 23:07   #6
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Re: Нахождение точки удовл. правилу Делоне

Для 3х точек минимальный радиус это пол растояния между самыми далёкими точками... справедливо для равнобедреных и правильных треугольников..
спасибо буду думать... курил винарные деревья но они неподходят..а квадродерево рулит тут.
__________________
(Offline)
 
Ответить с цитированием
Старый 11.12.2007, 23:24   #7
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Нахождение точки удовл. правилу Делоне

Вот нашел файлик с описаниями кучи алгоритмов триангуляции по Делоне http://srcc.msu.su/num-meth/zhurnal/...02/art1_2.html
(Offline)
 
Ответить с цитированием
Старый 12.12.2007, 01:01   #8
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Re: Нахождение точки удовл. правилу Делоне

да курил эту книжецу... много там всего..спсб
__________________
(Offline)
 
Ответить с цитированием
Старый 12.12.2007, 01:11   #9
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Нахождение точки удовл. правилу Делоне

А про што речь, это я так пологаю для оптимезации?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение пути DarkKnight Delphi 21 04.12.2006 02:01


Часовой пояс GMT +4, время: 19:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com