С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
BOB4uK

Алгоритм нахождения вершин многоугольника

26.02.2009, 09:48. Показов 3745. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как построить многоугольник с максимальной точностью, если известно:
1.Количество вершин многоугольника
2.Первые две вершины имеют координаты: A(0;0) B(0;длина стороны многоугольника)
3.Многоугольник разбит на треугольники(диагоналями), при этом одна точка может иметь несколько диагоналей
Я представляю себе это так:
1. Находим точку у которой есть диагонали уже с известными точками(на первом шаге это A и B)
2. По формуле пересечения двух окружностей находим одну или две точки пересечения и Вот тут то ВОПРОС: как выбрать верную точку?

Проблема в том что нужно написать алгоритм который сам определит правильное расположение точек в случае если этих вариантов несколько…

Пример на рисунке…
http://pic.ipicture.ru/uploads... BLBstw.jpg
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.02.2009, 09:48
Ответы с готовыми решениями:

Алгоритм нахождения вершин многоугольника
Есть таблица с координатами точек. Как определить вершины многоугольника? Вершин может быть произвольное количество. Пример таблицы: ...

Алгоритм закрашивания многоугольника линиями
Доброго времени суток! Интересует пара вопросов по следующему алгоритму: Найти min{yi} и max{yi} среди всех вершин Pi. ...

Проверка вершин многоугольника на "видимость"
Нужно определить какие вершины многоугольника видимые (напрямую достижимы) из заданой. например для вершины 1 это 3 и 6. pic

4
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
26.02.2009, 20:35
Не совсем понятно...

1. На входе есть количество вершин и еще что? Если диагонали, то каким способом они описываются?
2. Что надо получить на выходе?
0
BOB4uK
27.02.2009, 05:18
Еще диагонали, например прямоугльник ABCD, AB=300, BC=500, CD=300, DA=500, диагональ AC=583, и считаем счто первые две точки А(0;0) и В(0;АВ)->В(0;300)
и нужно найти остальные точки...

На выходе многоугольник как можно с меньшей погрешностью построения...
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
27.02.2009, 09:46
Как я понял, некоторая фигура задается треугольниками (точнее длинами сторон треугольников), и (уже полностью мое предположение) все указанные диагонали должны лежать внутри фигуры. Тогда необходимо строить фигуру так, чтобы треугольники имеющие общую сторону (диагональ требуемой фигуры) лежали по разные стороны от нее. Проверка в принципе не сложная (можно использовать векторное произведение). Дальше, думаю, сам разберешься.
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
27.02.2009, 12:31
Диагональ невозможно описать одной длиной.
Даже если они все выходят из начальной вершины, то должен быть еще хотя бы угол для каждой из них.
А если выходят не из одной точки, то надо для каждой диагонали указывать и диагональ, из конца которой она выходит.

Таким образом, полигон (многоугольник) можно задать как массив диагоналей, определенных, например, так:

C#
1
2
3
4
5
6
struct Diagonal
{
   int Angle; // угол
   int Length; // длина
   int StartsAt; // индекс предыдущей диагонали или 0, если из точки (0, 0)
}
При этом первая диагональ всегда будет (угол: 0, длина: [задана], диагональ: 0) - угол 0 соответствует положительному направлению оси Y.

Ну, и сам полигон:

C#
1
2
3
4
struct Polygon
{
   Diagonal[] diagonals; // массив диагоналей
}
(Код чисто для наглядности.)

Так как на самом деле задаются на входе диагонали?

Добавлено через 7 минут 22 секунды
Кстати, здесь есть полезный материальчик про триангуляцию многоугольников.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2009, 12:31
Помогаю со студенческими работами здесь

Алгоритм разбивки многоугольника с прямыми углами на прямоугольники
Всем привет. Все пытаюсь нагуглить информацию по теме, но кругом одна сплошная триангуляция. Мой задача проще - имеется многоугольник, у...

Алгоритм вращения многоугольника при его разбиении
Привет всем. Помогите сделать лабу "Алгоритм разбиения не выпуклых многоугольников." 1. Для каждой i-й вершины многоугольник...

Алгоритм поиска контуров изображения и составления многоугольника контура
Здравствуйте! Есть у меня какое-то монохромное изображение, например: Моя конечная цель - это составить многоугольник контура. В...

Генетический алгоритм размещения вершин графа
Привет всем.Тут решение одной задачи. Кто может объясните откуда из p1 -1 2 3 4 5 взялось L1 = 3+ 4+ 3+ 1 = 11. На рисунке с низу сам граф....

Алгоритм поиска числа всех вершин высоты N в двоичном дереве
Добрый день. Нужно придумать эффективуюю программу(алгоритм) поиска числа всех вершин высоты N в двоичном дереве (какое именно дерево: АвЛ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru