Найти центральную точку и границы произвольной закрытой кривой (случайная прогулка)
-
26-09-2019 - |
Вопрос
Предположим, у вас есть произвольная закрытая кривая (конечная точка возвращается относительно близкая к первой точке), сгенерированная через кучу координат набора данных, как вы находите центральную точку и границы полученной формы?
Решение
Есть две возможные интерпретации (возможно, больше) для вашего вопроса.
Первый был уже адресован @aakashm, и мы можем изобразить его на следующем участке:
Где красная площадь является «границей».
Я цитирую @aakashm здесь, потому что я понимаю его замечание очень важно:«(Отметим, что для вас есть закрытая кривая, вам нужна конечная точка, чтобы быть не просто« близким », но совпадающим с первой точкой)»
Что касается центральной точки, у вас есть как минимум два «естественных путя» для расчета этого с помощью этих определений:
- CenterPoint = Средняя точка Красной площади
- CenterPoint = {среднее количество х координат вашей кривой, среднее значение Y координат вашей кривой}
Оба они могут служить центральной точкой, но результаты будут разными.
Другой способ борьбы с проблемой - найти Выпуклая оболочка из вашей кривой, как показано ниже:
Если вы для этого Google, вы найдете алгоритмы для поиска выпуклого корпуса, хорошее введение здесь.
Опять же, у вас есть два «естественных путя для расчета центральной точки:
- CenterPoint = {среднее количество х координат вашей кривой, среднее значение Y координат вашей кривой}
- CenterPoint = {среднее количество х координат пункта CH, среднее значение y координаты пунктов CH}
HTH!
Другие советы
(Я отмечаю, что для вас иметь закрыто Кривая, вам нужна конечная точка, чтобы быть не просто «близким», но Совместно с Первый момент)
Если на «Центровая точка» вы имеете в виду центр массы, и вы предполагаете единую плотность, затем этот вопрос имеет то, что вы хотите.
Если по «границам» вы имеете в виду ограничивающий прямоугольник со сторонами, параллельными осями, вам просто нужно минимальные и максимальные значения X и Y на кривой.
Если кто-то из них не то, что вы имеете в виду, пожалуйста, скажите ...
Для границ вы можете обратиться к ответам, данным @ Belisarius и @aakashm.
Что касается центральной точки, вы хотите «центр масс». Хорошо, ol wikipedia имеет объяснения и рецепты в http://en.wikipedia.org/wiki/center_of_mass. а также http://en.wikipedia.org/wiki/centroy..
В общем, вы получаете другой результат, рассчитающий центроид, чем рассчитывая среднее значение вершин. Эта разница будет произносится, если вершины не распределены равномерно.