Найти центральную точку и границы произвольной закрытой кривой (случайная прогулка)

StackOverflow https://stackoverflow.com/questions/4223811

Вопрос

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

Это было полезно?

Решение

Есть две возможные интерпретации (возможно, больше) для вашего вопроса.

Первый был уже адресован @aakashm, и мы можем изобразить его на следующем участке:
alt text

Где красная площадь является «границей».
Я цитирую @aakashm здесь, потому что я понимаю его замечание очень важно:«(Отметим, что для вас есть закрытая кривая, вам нужна конечная точка, чтобы быть не просто« близким », но совпадающим с первой точкой)»

Что касается центральной точки, у вас есть как минимум два «естественных путя» для расчета этого с помощью этих определений:

  1. CenterPoint = Средняя точка Красной площади
  2. CenterPoint = {среднее количество х координат вашей кривой, среднее значение Y координат вашей кривой}

Оба они могут служить центральной точкой, но результаты будут разными.

Другой способ борьбы с проблемой - найти Выпуклая оболочка из вашей кривой, как показано ниже:

alt text

Если вы для этого Google, вы найдете алгоритмы для поиска выпуклого корпуса, хорошее введение здесь.

Опять же, у вас есть два «естественных путя для расчета центральной точки:

  1. CenterPoint = {среднее количество х координат вашей кривой, среднее значение Y координат вашей кривой}
  2. 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..

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top