|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
Пересечение окружности с несколькими и дополнительными условиями20.01.2016, 01:26. Показов 1362. Ответов 23
Метки нет (Все метки)
Пересечение окружности с несколькими и дополнительными условиями.
Даны 5 пронумерованных окружностей N0,N1,N2,N3,N4 одинакового известного радиуса (красные). Найти такую окружность (зеленая)чтобы: -пересекала все 5 окружностей последовательно по убыванию или возрастанию номера например: пересекала N0,N1,N2,N3,N4 один раз каждую. -найденные точки пересечения имеют максимально равномерное распределение на половине окружности( шаг между ними максимально близкий к 45 градусам). Вот пример: Даны 5 красных найти зеленую. Как наверно решать: точки пересечения окружностей это системы линейных уравнений А само решение это нелинейное, т.е. нужно перебирать все варианты? Написать критерий оценки "равномерность точек на половине окружности" и минимизировать. Есть ли альтернатива?
0
|
|
| 20.01.2016, 01:26 | |
|
Ответы с готовыми решениями:
23
Квадратное уравнение с дополнительными условиями
Как посчитать интервалы времени с дополнительными условиями |
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||
| 20.01.2016, 10:58 | ||
|
Две окружности имеют 2, 1, 0 точек пересечения Отсюда, использовать только первую (как у Вас), или любую точку пересечения?
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.01.2016, 13:28 [ТС] | |
|
Нет, точки пересечения есть всегда.
Видимо первую, а если все вторые будет более лучшее решение? А может и любые только брать одну точку с окружности и чтобы было лучше "равномерность точек на половине окружности". Наверно для упрощения лучше принять всегда первую точку…
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.01.2016, 14:55 [ТС] | |
|
Похоже вот более адекватная схема к задаче.
Радиус красных одинаковый и задан. Найти такие пять углов Xn ( от 45 до 75 градусов к примеру) чтобы зеленая окружность пересекала все 5 красных один раз, и точки пересечения были последовательно по убыванию или возрастанию номера окружности N0,N1 и т.д. с шагом максимально близким к 45 градусам. Может двигать “окружность построенную по 3 точкам” на окружностях N0,N2,N4? Дело в том , что я не знаю какие углы брать x0,x2,x4. Или это перебором? Зная центр и радиус найти как далеко от эталона C1…Cn. Эталон положения Cn найти зная C0, радиус и центр кандидата на зеленую окружность и через “cos(45град)* радиус_зелен_кандидата” и т.д. найти разность углов Cn и CnEtalon.Сложить 5 отклонений будет целевая функция для минимизации? Или не так? Как такое решить? Можно ли проще?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.01.2016, 16:42 [ТС] | |
|
Во второй схеме с углами Xn есть аналитическое решение. Тогда остается задача с первой схемы. Известны центры и радиусы пяти красных окружностей, найти зеленую.
Возможно изменить ее если поможет, например радиусы красных окружностей равные но не известные в интервале от min0 до max0(заданы).
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 21.01.2016, 10:59 | |
|
Дайте координаты точек центров 5 окружностей и их радиус как в #4, для тестирования алгоритма.
А то имею вот такое решение (на зеленый кружок не обращать внимание, это стартовая точка поиска решения)
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 21.01.2016, 11:57 | |
|
Удалось получить такое
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 21.01.2016, 14:21 [ТС] | ||
|
0
|
||
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 21.01.2016, 14:56 | |
|
Это MATLAB.
Решение ищется путем поиска оптимума функции цели от 3 параметров, x y и R маленькой окружности. В решении находятся точки пересечения этой окружности с 5-ю базавыми окружностями. Используется первая точка пересечения (это крайне неправильно, но как делать подругому пока не понятно и может у Вас есть какое-то физическое обоснование этого ограничения). Далее находятся 5 направлений на точки пересечения, по ним 4-ре угла между направлениями. Сумма квадратов отклонений углов от pi/4 это ошибка, которая в общем минимизируется. В случае если с какой-то окружностью нет пересечения в функцию ошибки вносятся штраф. Решение которое находится сильно зависит от стартовой точки, она должна быть где-то рядом с искомым решением. В стартовой точке искомая окружность должна иметь пересечения со всеми 5 огружностями, иначе решение не втягивается в нужную область. Очеводно что есть несколько достаточно хороших решений, но алгоритм двигается к некоторому рядом расположенному. Ниже на картинке еще один вариант решения, с теми же исходными данными но другой стартовой точкой
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 21.01.2016, 15:08 | |
|
Еще интересное решение
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 21.01.2016, 15:37 [ТС] | ||
|
Никогда с матлабом не работал. Наверно он заточен под такие задачи?
А если: С0 до Сn точки пересечения на зеленой. C0=cos(alfa0)*Rкрасной, sin(alfa0)*Rкрасной подбор alfa0 C4=cos(alfa4)*Rкрасной, sin(alfa4)*Rкрасной подбор alfa4 Центр кандидата на зеленую, центр отрезка C0 C4. Тогда 2 точки пересечения найдены сразу, остается найти погрешность углов C1,C2,C3. Наверно ошибка в том что оценивается сумма погрешностей, отсюда 2 идеально 3 ужасно. А нужно чтобы каждая точка пересечения была как можно ближе к 45 градусам а не суммарная ошибка.
0
|
||
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 21.01.2016, 15:50 | |
|
MATLAB математический пакет, поэтому условно заточен под все.
Используется функция поиска оптимума от 3 переменных со стартовой точкой. Главное хорошая функция цели. Здесь пытался использавать примерно следующее Cel = (alf12-45)^2 + (alf23-45)^2 + (alf34-45)^2 + (alf45-45)^2 Плюс штрафы если пересечения с какой-то окружностью нет. В итоге каждый угол стремиться к 45, если это возможно. А физика процесса какая-то есть? Для чего задача?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 21.01.2016, 16:44 [ТС] | |
|
Это попытка синтеза плоского механизма указав 5 точек на траектории.
Изначально вот такой схемы. Сейчас траектория и скорость на ней неправильные. Задача попробовать синтезировать его так, чтобы он описывал траекторию с плоским участком при повороте каждого кривошипа на 180 градусов. Я выбрал 5 точек на прямой. В итоге траекторию хочу наподобие такой: Если в лоб то мне кажется тут 20 (10 x 10 y) параметров оптимизации. Неизвестны все координаты шарниров. Поэтому хочу попробовать синтезировать его по 5 точкам на прямой хотя бы. Чтобы не искать их а фактически грубо указать, а потом уже можно будет локально оптимизировать ( наверно). Мне кажется 20 нелинейных параметров это очень много. Пробовал синтез на 3 точках то траектория вихляет, и решал поиск зеленой окружности вручную. Думал сделать автоматически. Как видите эта задача первого поста только 1/3 всей. Но другие две тоже самое практически. В итоге думал сведется к подбору 6 параметров а не 20 и к приближенному результату.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 21.01.2016, 18:58 [ТС] | |
|
Может правильно ввести ограничение на min max радиус зеленой окружности?
Понятия не имею какие брать… Но это сильно поможет перебору. В итоге первая точка зеленой окружности C0 будет в точке A, вторая будет на фиолетовых дугах и определит диаметр зеленой. Перебрать через sin cos параметрич. формулу окружности N4. И минимизировать максимальную ошибку углов из С1,C2,C3.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 17.05.2016, 14:05 [ТС] | |
|
Придумал упрощение.
Клик ан анимашке. Красные окружности с центром a0,b0,c0,d0,e0 одинакового радиуса. a0,e0 пунктирные, на них точки A,B оранжевые. По точкам A,B строим черную окружность центр f0. На черной окружности есть 3 голубые точки с шагом 45 град от точки A(эталон1).Тоже самое зеленые (эталон2) точки на другой полуплоскости от AB. Фиолетовые это точки пересечения черной окружности f0 с тремя красными окружностями(b0,c0,d0). Каждой точке пересечения соответствует свой порядковый номер эталона положения. Черная пересекает красные по порядку (b0,c0,d0) или (d0,c0,b0). Вопрос: Найти такие A,B(сейчас таскаю вручную) чтобы на черной окружности фиолетовые точки были на минимальном расстоянии от голубых либо зеленых? (два решения). Это аналитически можно решить? В Интернете попадались минимум двух переменных сводили к уравнениям, тут же все окружности на плоскости. Или только численно?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 21.05.2016, 16:26 [ТС] | |
|
Почему никто не отвечает =(. Плохо описал? Вроде доступно и анимашка есть… Я вижу только разряженный брутофорс поиск минимума. Может в этой упрощенной постановке есть аналитическое решение?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 21.05.2016, 22:03 [ТС] | |
|
Не собирался. Есть много разных. Значит только численно?
0
|
|
| 22.05.2016, 00:13 | |
|
А Вы в интернете русскоязычном лучшее, чем делал Иванов А.Б. (ник. алексей-алексей) и его последователи видели?
- Нет.! Так что осваивайте метод Драгилева. Правда, Иванов куда-то пропал. И сайт exponenta.ru , где Иванов выставлял свои работы скис.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 22.05.2016, 10:06 [ТС] | ||
|
На научном форуме его заклевали, видимо у профи есть давно известные приемы из старой школы. И примеры у него не все нелинейные системы даже мне очевидные, что говорить о профи… Уверен он опять тут сейчас\позже придет с левым ником и опять прорекламирует свой метод. Задача синтез механизма по траектории хотя бы прямого участка кривой из 5 точек и если автоматизирую добавлю на криволинейном участке траектории точки.
0
|
||
| 22.05.2016, 10:06 | |
|
Помогаю со студенческими работами здесь
20
While c несколькими условиями do While с несколькими условиями Работа while с несколькими условиями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|