[CDR 2017-2021] Найдем минимальное расстояние между кривыми?

  • Автор темы Автор темы tohaa
  • Дата начала Дата начала

tohaa

Участник
Топикстартер
Сообщения
229
Реакции
8
Добрый вечер.
Давно ломаю голову, но не могу придумать, как измерить минимальное расстояние между кривыми? Подскажите пожалуйста, если знаете как.
1701026410947.png
 
Последнее редактирование:
Задача не имеет решение, поскольку вы ее даже формализовать не можете.
На рисунке вовсе не минимальное расстояние между кривыми , так как кривая одна. Если имеется в виду "минимальное расстояние между сегментами кривой" - тоже лажа получается, так как минимально удалены соседние сегменты.
В общем, как обычно, чтобы задать вопрос, надо знать большую часть ответа.
 
Задача не имеет решение, поскольку вы ее даже формализовать не можете.
На рисунке вовсе не минимальное расстояние между кривыми , так как кривая одна. Если имеется в виду "минимальное расстояние между сегментами кривой" - тоже лажа получается, так как минимально удалены соседние сегменты.
В общем, как обычно, чтобы задать вопрос, надо знать большую часть ответа.
Можно рассмотреть для начала в пределах одного объекта. Т.е. минимальное расстояние между сегментами кривой. А далее уже перейти к поиску расстояния и между объектами.
 
у меня в макросе кнопка такая есть )
делаю просто. разбиваю кривую на N равных сегментов и ищу ближайшую точку (не соседний сегмент)
 
Можно рассмотреть для начала в пределах одного объекта. Т.е. минимальное расстояние между сегментами кривой. А далее уже перейти к поиску расстояния и между объектами.
Для того, чтобы найти расстояние на вашем скриншоте, недостаточно знать минимальное расстояние между сегментами кривой.
Повторяю, попробуйте формализовать свою задачу, возможно, есть какой то более простой способ.
 
Реклама - двигатель торговли! '))'
 
Ну вам же бесплатно алгоритм сказали - разбиваете сегмент на части и считаете расстояние от каждой точки на нем до нужной кривой. Будет очень медленно, глючно, а, главное, это мало поможет найти узкое место внутри шейпа (как у вас на скрине изображено)
 
Вот у этой задачки самое простое решение.
circle.png
попробуйте формализовать свою задачу
Для каждой точки на кривой вычислить расстояние до каждой другой точки на кривой. При условии, что от какой-либо точки расстояние вначале увеличивается, потом уменьшается, потом снова увеличивается, потом снова уменьшается, сравнить расстояние между экстремальными уменьшениями, расположенными между двумя увеличениями. В случае отсутствия последовательности "увеличение-уменьшение-увеличение" постановить, что задача не имеет смысла.
 
Вариант решения задачи с разделением на точки или сегменты не корректен, так как самым минимальным расстоянием будет расстояние между соседними сегментами или точками. Нужно другой подход. Возможно стоит взять во внимание для решения особую точку внутри области например как в Круге это центр окружности, ну или в данном случаи что то Вроде "центра тяжести" через которую и будут проходить замеры минимального расстояния.
 
Последнее редактирование:
Вот у этой задачки самое простое решение.
Посмотреть вложение 162325

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