Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/35: Рейтинг темы: голосов - 35, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 17

Аппроксимация ломанной кривой используя дуги окружностей

07.08.2014, 14:22. Показов 7728. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

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

Ищу светлых умов для совместного обдумывания алгоритма. Есть такие?

P.S. На рисунке изображён пример. Чёрная линия - это ломоная. Оранжевая - совокупность дуг.
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2014, 14:22
Ответы с готовыми решениями:

Построение ломанной кривой через процедуры MouseDown и MouseMove
Доброго времени суток. Если кто может помогите пожалуйста в решении таких 2-ух задач. "Необходимо построить ломанную кривую,...

Графики функций при переводе из радиан в градусы становятся ломанной кривой
Почему графики функций при переводе из радиан в градусы становятся ломанной кривой, без точек x=0 Функция Fh(Θ) и ниже другие

Длина дуги кривой
Добрый день! Объясните пожалуйста поподробнее, как найти длину дуги кривой r = \alpha (1-sin\varphi )

28
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 17
11.08.2014, 10:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от helper Посмотреть сообщение
При переборах по подмножествам можно даже параллелизм будет использовать.
Каким образом? Поясните пожалуйста.
Цитата Сообщение от helper Посмотреть сообщение
этот алгоритм простейший.
Может и простейший, то с точки реализации - существует несколько проблемных моментов. К примеру, чтобы построить окружность нужно знать три точки, затем составляется система нелинейных уравнений. И вот решение данной системы - это первая загвоздка реализации.
0
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
11.08.2014, 19:43
Цитата Сообщение от manter Посмотреть сообщение
Поясните пожалуйста.
Поиск решения для каждого из подмножеств не зависит от элементов каждого другого подмножества для этой задачи, поэтому можно параллельно обрабатывать каждое подмножество.

Цитата Сообщение от manter Посмотреть сообщение
чтобы построить окружность нужно знать три точки
школьная математика.

Цитата Сообщение от manter Посмотреть сообщение
затем составляется система нелинейных уравнени
Ну это как из пушки по воробьям. Можно намного проще - зная уравнение текущей окружности, просто считаем расстояние от её центра до каждой точки подмножества, и считаем, например, матожидание этих расстояний и насколько оно отличается от радиуса.

Извините, конечно, но у меня такое чувство, что Вы вот этими вот своими вопросами (ответы на которые достаточно очевидны для любого более-менее серьёзного программиста) всё же хотите, чтобы я разжевал Вам на 1-2-3 всю последовательность алгоритма. Знаете, в алгоритмах есть базисные вещи и понятия, не понимая которые лучше в такие задачи не лезть, просто очень напрягает по несколько раз затрагивать объяснение очевидных вещей, IMHO.
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 17
12.08.2014, 13:27  [ТС]
Цитата Сообщение от helper Посмотреть сообщение
Извините, конечно, но у меня такое чувство, что Вы вот этими вот своими вопросами (ответы на которые достаточно очевидны для любого более-менее серьёзного программиста) всё же хотите, чтобы я разжевал Вам на 1-2-3 всю последовательность алгоритма. Знаете, в алгоритмах есть базисные вещи и понятия, не понимая которые лучше в такие задачи не лезть, просто очень напрягает по несколько раз затрагивать объяснение очевидных вещей, IMHO.
Считаю, что форум и придуман для того, чтобы обращаться за помощью к более знающим людям, когда возникают вопросы. Тем более раздел Алгоритмов.
Хорошая у вас позиция - не знаешь, не лезь. А вы как всему, что знаете, научились?
И
0
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
12.08.2014, 15:00
Цитата Сообщение от manter Посмотреть сообщение
А вы как всему, что знаете, научились?
Самостоятельно, но не считаю, что в данном случае это имеет значение.
Право, есть базисные алгоритмы, лучше Вам начать с них.
Ничего личного, но иначе диалог не продвинется, я ж не могу разжёвывать всё "до байта".
0
90 / 109 / 15
Регистрация: 26.01.2014
Сообщений: 710
24.08.2014, 23:47
Дорогой Сэр manter! Если вопрос еще актуален, посмотрите мой ответ Сэру ReasonX7 в ветви математика - геометрия.

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

У Вас имеются наборы координат x, y на плоскости, которые предположительно принадлежат нескольким окружностям или их фрагментам.
Выбираете три произвольные точки из Вашего набора. И строите по ним окружность. Т.е. вычисляете ее центр X, Y и радиус R.
Накапливаете три гистограммы с X-ами, Y-ками и R-ами. Заносите полученные X, Y, R в эти гистограммы.
Берете следующую тройку вообще говоря случайных своих точек. Делаете то-же самое, и заносите новые X, Y и R в те же гистограммы. И так перебираете все ваши точки. Закономерно или случайно Вы их будете выбирать без разницы. Будете ли перебирать все комбинации, или остановитесь по достаточности - тоже зависит от Вас.
Если выбранные три точки принадлежат одной окружности ( фрагменту окружности ), то и в X и в Y и в R в Ваших гистограммах будет расти пик именно этой окружности.
Если точки принадлежат разным окружностям, то расчет по ним X, Y и R даст случайное значение и при занесении их в гистограмму они просто создадут фоновую подложку.
Точки взятые из другой окружности дадут свои X, Y и R и при занесении в гистограмму дадут еще один пик в X-ах, Y-ках и R-ах.
Соотношение высот пиков будет пропорционально обработанных Вами ( имеющихся у Вас ) точкам в каждой из Ваших окружностей. Ширины пиков дадут точность определения положения центров и радиусов.
Геометрическое положение окружностей друг относительно друга может быть любым.

Удачи!

Всегда Ваш - Etien.
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
25.08.2014, 19:15
Цитата Сообщение от helper Посмотреть сообщение
Вопрос, а чем интерполяция сплайнами не подходит?
Вот, с самого начала был задан очень даже деловой вопрос... а ответа все нету.
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 17
26.08.2014, 15:24  [ТС]
Цитата Сообщение от MOHCTP Посмотреть сообщение
Вот, с самого начала был задан очень даже деловой вопрос... а ответа все нету.
Ответ №4, 9.
Цитата Сообщение от manter Посмотреть сообщение
Выходные данные должны содержать информацию о радиусе дуги.
Цитата Сообщение от Etien Посмотреть сообщение
Не поленюсь повторить идею.
Спасибо за идею!
0
298 / 260 / 108
Регистрация: 26.10.2012
Сообщений: 810
26.08.2014, 16:08
[IMAGE]http://i64.***********/big/2014/0826/76/26aa6b83c1ba56d4f549bfbe78cf9e76.png[/IMAGE]
Кликните здесь для просмотра всего текста



Хз как тут картинку добавлять

Добавлено через 7 минут

Хз как тут картинку добавлять,

В общем углы можно сглаживать окружностями так чтобы:
1) окружность сглаживала каждый узел ломаной
2) отрезки ломаной были касательными к этой окружности
3) чтобы сглаживающие окружности не пересекались,
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.04.2015, 16:45
Цитата Сообщение от manter Посмотреть сообщение
Выходные данные должны содержать информацию о радиусе дуги.
Вообще то дуга - кривая Безье второго порядка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2015, 16:45

Длина дуги кривой
Здравствуйте, подскажите, пожалуйста, как вычислить длину дуги данной функции заданной в параметрическом виде: x=({t}^{2}-2)\bullet...

длина дуги кривой
вычислить длину дуги кривой x=a(sht-t) y=a(cht-1) 0<=t<=1 int(1,0) sqrt dt поупращала и в итоге получилось sqrt(2)*a int(sqrt dt...

Длина дуги кривой.
вычислить длину дуги кривой y=ln(sinx), между прямыми x=0 и x=п/2

Длина дуги кривой
Нужно найти длину дуги кривой, заданной параметрически. Помоги с заданием пожалуйста. \left\{\begin{matrix}x=2(cos(t)+t sin(t)) &...

Длина дуги кривой
Найти длину дуги кривой 1) y=ln(sinx), (\pi/3)\leq x\leq (2\pi/3) 2)p=a/1+cos\alpha , |\alpha |\leq \pi /2 3)x={sin}^{4}t...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru