|
|
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Каорче есть интереная задачка как по имеющимся координатам (точки) определить их последовательность в многоугольнике ? Я думаю что это делаеться чисто математически . Если кто сталкивался или видел кинте ссылочку по данному материалу например текстовый алгоритм или просто статьтя ... Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 13:27 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
если на многоугольник не наложено никаких ограничений (например, правильность), то никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 14:09 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
miksoftесли на многоугольник не наложено никаких ограничений (например, правильность), то никак. Плохо )) Мне просто преподаватель сказал что это возможно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 15:05 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Наверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 15:06 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Begem0t!kНаверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ?Имхо, условия выпуклости будет достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 15:14 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
miksoft Begem0t!kНаверное он был не прав . Как я понял для определения необходимо знать тип многоугольника это так ??? Например Выпуклый ?Имхо, условия выпуклости будет достаточно. Тогда можно отсортировать точки углам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 15:35 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Выпуклый многоугольник это например квадрат и треугольник так ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 17:22 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Begem0t!kВыпуклый многоугольник это например квадрат и треугольник так ???да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 17:26 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Кароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ? Слышал про Алгоритмы обхода Грэхема и Джарвиса помоему они определяют только выпуклые многоугольники есть алгоритмы для построения не выпуклого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 17:53 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Begem0t!kКароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ?Не совсем. Выпуклость - не единственное условие возможности определения порядка вершин. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 18:03 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Всё просто - для выпуколого решение единственно, для невыпуклого (даже без самопересечений) - решение не единственно. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным. Также имеет право на жизнь, но опять же, в общем случае решение для такого критерия будет не единственным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 18:56 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
mikhail_nВсё просто - для выпуколого решение единственно, для невыпуклого (даже без самопересечений) - решение не единственно. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным. Также имеет право на жизнь, но опять же, в общем случае решение для такого критерия будет не единственным.для обоих условий ("выпуклость" и "для каждой вершины соседние вершины одновременно являются ближайшими вершинами") решение единственно с точностью до направления обхода и выбора начальной вершины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 19:01 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
miksoft Begem0t!kКароче из всей темы я понял следуещее ! Если мы не знаем выпуклый многоугольник или нет то по точкам посторить невозможно да ?Не совсем. Выпуклость - не единственное условие возможности определения порядка вершин. Например, условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами" так же будет достаточным. приехали! тот, что со стрелкой не выпуклый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 19:03 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Aklinприехали! тот, что со стрелкой не выпуклый.Не выпуклый, ну и что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 19:09 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Кароче главное что имея просто набор точек и не имея больше никакой информации начертить полигон не удасться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 20:16 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Begem0t!kКароче главное что имея просто набор точек и не имея больше никакой информации начертить полигон не удасться!Удастся начертить множество полигонов. Но найти среди них искомый - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 20:19 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
для обоих условий ("выпуклость" и "для каждой вершины соседние вершины одновременно являются ближайшими вершинами") решение единственно с точностью до направления обхода и выбора начальной вершины. Для выпуклого - да, а для критерия для каждой вершины соседние вершины одновременно являются ближайшими вершинами нет. Возьмите окружность, одну точку бросьте в центр, остальные разбросайте по окружности так, чтобы расстояние между точками, лежащими на окружности было меньше радиуса окружности (уже 4х точек на окружности должно хватить). Так какие именно две точки на окружности в соответствии с Вашим критерием Вы соедините с той что в центре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 21:06 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
mikhail_n для каждой вершины соседние вершины одновременно являются ближайшими вершинаминет. Возьмите окружность, одну точку бросьте в центр, остальные разбросайте по окружности так, чтобы расстояние между точками, лежащими на окружности было меньше радиуса окружности (уже 4х точек на окружности должно хватить). Так какие именно две точки на окружности в соответствии с Вашим критерием Вы соедините с той что в центре?Во-первых, тогда нужно не меньше 6 точек на окружности. Или я не правильно понял вашу идею? Во-вторых, мне пока не пришло в голову, как расположить эти точки, чтобы условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами". В-третьих, наверное, будет более правильно это условие сузить до "для каждой вершины соседние вершины одновременно являются ближайшими вершинами и нет других верших находящихся на расстоянии, равном расстоянию до соседних вершин" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 09:42 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
Во-первых, тогда нужно не меньше 6 точек на окружности. Или я не правильно понял вашу идею? Да, нужно минимум 7 точек. авторВо-вторых, мне пока не пришло в голову, как расположить эти точки, чтобы условие "для каждой вершины соседние вершины одновременно являются ближайшими вершинами". Ну, делим окружность на семь равных частей например. В-третьих, наверное, будет более правильно это условие сузить до "для каждой вершины соседние вершины одновременно являются ближайшими вершинами и нет других верших находящихся на расстоянии, равном расстоянию до соседних вершин" Ну так пример как раз о том, что для произвольного набора точек это условие не выполняется, как Вы будете поступать если такие точки есть? Для точки в центре все точки на окружности таковыми и являются. Вообще-то с точки зрения данного раздела всё это обсуждение не очень уместно, тут было бы правильнее просто запостить сишный код реализующий тупой перебор трудоёмкостью O(N^4). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 21:26 |
|
||
|
Интересный алгоритм C++ Builder
|
|||
|---|---|---|---|
|
#18+
mikhail_nНу так пример как раз о том, что для произвольного набора точек это условие не выполняется, как Вы будете поступать если такие точки есть? Для точки в центре все точки на окружности таковыми и являются.Я всего лишь предложил условие, которое, будь оно добавлено к исходным условиям задачи, достаточно, т.е. гарантирует решение задачи. Я нигде не писал, что оно будет верно для произвольного набора точек. mikhail_nВообще-то с точки зрения данного раздела всё это обсуждение не очень уместно, тут было бы правильнее просто запостить сишный код реализующий тупой перебор трудоёмкостью O(N^4).А вот тут я совсем не понял. Что именно надо перебирать, да еще с трудоемкостью O(N^4) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 21:43 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34344775&tid=2029394]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 534ms |

| 0 / 0 |
