Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Интересный алгоритм C++ Builder / 20 сообщений из 20, страница 1 из 1
20.02.2007, 13:27
    #34343717
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Каорче есть интереная задачка как по имеющимся координатам (точки) определить их последовательность в многоугольнике ? Я думаю что это делаеться чисто математически .
Если кто сталкивался или видел кинте ссылочку по данному материалу например текстовый алгоритм или просто статьтя ... Заранее спасибо.
...
Рейтинг: 0 / 0
20.02.2007, 14:09
    #34343901
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
если на многоугольник не наложено никаких ограничений (например, правильность), то никак.
...
Рейтинг: 0 / 0
20.02.2007, 15:05
    #34344123
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
miksoftесли на многоугольник не наложено никаких ограничений (например, правильность), то никак.

Плохо )) Мне просто преподаватель сказал что это возможно )
...
Рейтинг: 0 / 0
20.02.2007, 15:06
    #34344130
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Наверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ?
...
Рейтинг: 0 / 0
20.02.2007, 15:14
    #34344181
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Begem0t!kНаверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ?Имхо, условия выпуклости будет достаточно.
...
Рейтинг: 0 / 0
20.02.2007, 15:35
    #34344292
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
miksoft Begem0t!kНаверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ?Имхо, условия выпуклости будет достаточно.

Тогда можно отсортировать точки углам
...
Рейтинг: 0 / 0
20.02.2007, 17:22
    #34344775
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Выпуклый многоугольник это например квадрат и треугольник так ???
...
Рейтинг: 0 / 0
20.02.2007, 17:26
    #34344796
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Begem0t!kВыпуклый многоугольник это например квадрат и треугольник так ???да
...
Рейтинг: 0 / 0
20.02.2007, 17:53
    #34344894
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Кароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ?
Слышал про Алгоритмы обхода Грэхема и Джарвиса помоему они определяют только выпуклые многоугольники есть алгоритмы для построения не выпуклого ?
...
Рейтинг: 0 / 0
20.02.2007, 18:03
    #34344923
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Begem0t!kКароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ?Не совсем. Выпуклость - не единственное условие возможности определения порядка вершин. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным.
...
Рейтинг: 0 / 0
20.02.2007, 18:56
    #34345070
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Всё просто - для выпуколого решение единственно, для невыпуклого (даже без самопересечений) - решение не единственно.

Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным.

Также имеет право на жизнь, но опять же, в общем случае решение для такого критерия будет не единственным.
...
Рейтинг: 0 / 0
20.02.2007, 19:01
    #34345081
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
mikhail_nВсё просто - для выпуколого решение единственно, для невыпуклого (даже без самопересечений) - решение не единственно.

Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным.

Также имеет право на жизнь, но опять же, в общем случае решение для такого критерия будет не единственным.для обоих условий ("выпуклость" и "для каждой вершины соседние вершины одновременно являются ближайшими вершинами") решение единственно с точностью до направления обхода и выбора начальной вершины.
...
Рейтинг: 0 / 0
20.02.2007, 19:03
    #34345085
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
miksoft Begem0t!kКароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ?Не совсем. Выпуклость - не единственное условие возможности определения порядка вершин. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным.

приехали! тот, что со стрелкой не выпуклый.
...
Рейтинг: 0 / 0
20.02.2007, 19:09
    #34345100
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Aklinприехали! тот, что со стрелкой не выпуклый.Не выпуклый, ну и что?
...
Рейтинг: 0 / 0
20.02.2007, 20:16
    #34345217
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Кароче главное что имея просто набор точек и не имея больше никакой информации начертить полигон не удасться!
...
Рейтинг: 0 / 0
20.02.2007, 20:19
    #34345222
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Begem0t!kКароче главное что имея просто набор точек и не имея больше никакой информации начертить полигон не удасться!Удастся начертить множество полигонов. Но найти среди них искомый - нет.
...
Рейтинг: 0 / 0
20.02.2007, 21:06
    #34345292
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
для обоих условий ("выпуклость" и "для каждой вершины соседние вершины одновременно являются ближайшими вершинами") решение единственно с точностью до направления обхода и выбора начальной вершины.

Для выпуклого - да, а для критерия

для каждой вершины соседние вершины одновременно являются ближайшими вершинами

нет. Возьмите окружность, одну точку бросьте в центр, остальные разбросайте по окружности так, чтобы расстояние между точками, лежащими на окружности было меньше радиуса окружности (уже 4х точек на окружности должно хватить). Так какие именно две точки на окружности в соответствии с Вашим критерием Вы соедините с той что в центре?
...
Рейтинг: 0 / 0
21.02.2007, 09:42
    #34345856
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
mikhail_n для каждой вершины соседние вершины одновременно являются ближайшими вершинаминет. Возьмите окружность, одну точку бросьте в центр, остальные разбросайте по окружности так, чтобы расстояние между точками, лежащими на окружности было меньше радиуса окружности (уже 4х точек на окружности должно хватить). Так какие именно две точки на окружности в соответствии с Вашим критерием Вы соедините с той что в центре?Во-первых, тогда нужно не меньше 6 точек на окружности. Или я не правильно понял вашу идею?
Во-вторых, мне пока не пришло в голову, как расположить эти точки, чтобы условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами".
В-третьих, наверное, будет более правильно это условие сузить до "для каждой вершины соседние вершины одновременно являются ближайшими вершинами и нет других верших находящихся на расстоянии, равном расстоянию до соседних вершин"
...
Рейтинг: 0 / 0
21.02.2007, 21:26
    #34348526
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
Во-первых, тогда нужно не меньше 6 точек на окружности. Или я не правильно понял вашу идею?

Да, нужно минимум 7 точек.

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

Ну, делим окружность на семь равных частей например.

В-третьих, наверное, будет более правильно это условие сузить до "для каждой вершины соседние вершины одновременно являются ближайшими вершинами и нет других верших находящихся на расстоянии, равном расстоянию до соседних вершин"

Ну так пример как раз о том, что для произвольного набора точек это условие не выполняется, как Вы будете поступать если такие точки есть? Для точки в центре все точки на окружности таковыми и являются.

Вообще-то с точки зрения данного раздела всё это обсуждение не очень уместно, тут было бы правильнее просто запостить сишный код реализующий тупой перебор трудоёмкостью O(N^4).
...
Рейтинг: 0 / 0
21.02.2007, 21:43
    #34348545
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный алгоритм C++ Builder
mikhail_nНу так пример как раз о том, что для произвольного набора точек это условие не выполняется, как Вы будете поступать если такие точки есть? Для точки в центре все точки на окружности таковыми и являются.Я всего лишь предложил условие, которое, будь оно добавлено к исходным условиям задачи, достаточно, т.е. гарантирует решение задачи. Я нигде не писал, что оно будет верно для произвольного набора точек.

mikhail_nВообще-то с точки зрения данного раздела всё это обсуждение не очень уместно, тут было бы правильнее просто запостить сишный код реализующий тупой перебор трудоёмкостью O(N^4).А вот тут я совсем не понял. Что именно надо перебирать, да еще с трудоемкостью O(N^4) ?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Интересный алгоритм C++ Builder / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]