Центр многоугольгика
Есть массив, в котором друг за другом идут X и Y. Таким образом описана геометрия многоугольника. От 4 до 10 точек на каждый. Отрезки не пересекаются.
Есть ли простой алгоритм по вычислению центройда для такой фигуры. Универсального средства не требуется. Первое, что пришло на ум - это взять и высчитать так называемый BoundingBox (описывающий четырёхугольник) и поделив каждую строну пополам - получаю центройд. Но терзают меня смутные сомнения, что существуют более грамотные решений. Светлые умы - подскажите верный путь. Я птушник, так что просьба не кидать супер формулу где под переменной циферки и над ней тоже, а также загогулина такая намоминающая букву S :-D . Для ясности пример: Входящие данные: 0,0, 0,5, 10,5, 10,10, 15, 10, 15,15, 0,15 |
Ответ: Центр многоугольгика
По моему тебе пришла на ум верная идея, где нет сложных вычислений, а одни сравнения, только в конце center((xmin+xmax)/2,(ymin+ymax)/2).
|
Ответ: Центр многоугольгика
Проблема, возможно, будет только с вогнутыми многоугольниками: вычисленный по BoundingBox центр может оказаться вне фигуры
|
Ответ: Центр многоугольгика
А мне кажется это не проблема. Не у всех тел центр в их полости. Даже центр масс так же может быть не в полости тела.
|
Ответ: Центр многоугольгика
Описывающий четырёхугольник не катит. Это видно, даже глядя на твой первый пример.
Центроид - он же барицентр, совпадает с центром масс (если плотность однородная). Попробуй применить первую формулу из http://ru.wikipedia.org/wiki/Центр_масс . Ниже не смотри - там как раз "загогулина такая намоминающая букву S". |
Ответ: Центр многоугольгика
Центр масс находится емнип как среднее координат ограничивающих фигуру.
|
Ответ: Центр многоугольгика
Ух. Уфф. Как же это в код перевести, то?
i - внизу - это циклический перебор. rc - радиус вектор. Он в x и y или дистанция и угол поворота? Моя не понимать ваши формулы. Где почитать, то как это перевести в код? Или кто вразумит нерадивого неуча псевдо кодом отличным? |
Ответ: Центр многоугольгика
Код:
double SummX = 0; |
Ответ: Центр многоугольгика
Лолшто? Тупо складываем все точки и делим на их кол-во?
|
Ответ: Центр многоугольгика
ТЗ нечёткое: тебе нужен геометрический центр или центр масс?
|
Ответ: Центр многоугольгика
Цитата:
Радиус-центр - вектор, задающий положения точки в пространстве относительно некоторой заранее фиксированной точки, называемой началом координат (Википедия). Например, треугольник (4; 2) (2; 6) (5; 8). Барицентр - (3,667; 5,333). Можешь построить и убедиться. |
Ответ: Центр многоугольгика
Спасибо всем, вот что получилось:
PHP код:
Цитата:
|
Часовой пояс GMT +4, время: 10:31. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot