Центроид треугольника — точка пересечения его медиан
В математике барице́нтр, или геометри́ческий центр, двумерной фигуры — это среднее арифметическое положений всех точек данной фигуры. Определение распространяется на любой объект в n-мерном пространстве. Радиус-вектор барицентра в трёхмерном случае вычисляется как
- ,
где интегрирование выполняется по объёму тела. Другое название барицентра в этом значении — центроид.
Неформально, геометрический барицентр есть точка равновесия фигуры, вырезанной из картона, в предположении, что картон имеет постоянную плотность, а внешнее гравитационное поле однородно.
В физике термин «барицентр» — синоним понятия «центр масс», используемый, в основном, в задачах космической механики. Центр масс объекта является средним арифметическим всех его точек с учётом локальной плотности массы. Для физических объектов с постоянной плотностью центр масс совпадает с барицентром фигуры той же формы.
Ниже барицентр рассматривается в математическом (геометрическом) смысле, о барицентре в физике см. статью Центр масс.
Свойства[править | править код]
Геометрический барицентр выпуклого объекта всегда лежит внутри объекта. Невыпуклый объект может иметь барицентр, лежащий вне фигуры. Барицентр кольца или миски, например, лежат вне фигуры.
Если барицентр известен, он является фиксированной точкой группы изометрии симметрий фигуры. Барицентр объекта лежит на пересечении всех его гиперплоскостей симметрии. Барицентры многих фигур (правильного многоугольника, правильного многогранника, цилиндра, прямоугольника, ромба, окружности, сферы, эллипса, эллипсоида, суперэллипса, суперэллипсоида и т. д.) можно найти исходя исключительно из этого принципа.
В частности, барицентром треугольника является точка пересечения его медиан (см. рисунок). Барицентром параллелограмма является точка пересечения его диагоналей, но это неверно для других четырёхугольников.
Барицентр объекта с трансляционной симметрией не определён (или лежит вне пространства фигуры), поскольку сдвиг не имеет фиксированной точки.
Центроид треугольника[править | править код]
- Барицентр треугольника называется центроидом и лежит на пересечении трёх медиан, также лежит на прямой Эйлера (проходящей и через другие ключевые точки, включая ортоцентр и центр описанной окружности)[1][2].
- Если в вершины треугольника поместить равные массы, то центр масс (барицентр) полученной системы будет совпадать с центроидом. Более того, центр масс треугольника с равномерно распределённой массой также находится в центроиде.
- [3].
- Сумма квадратов сторон треугольника равна утроенной сумме квадратов расстояний от центроида до вершин треугольника:
- [3].
- Центр масс сторон треугольника совпадает с центром вписанной окружности дополнительного треугольника (треугольника с вершинами, расположенными в серединах сторон данного треугольника). Эту точку называют центром Шпикера. Если стороны треугольника сделать из тонкой проволоки одинакового сечения, то центр масс (барицентр) полученной системы будет совпадать с инцентром дополнительного треугольника, или с центром Шпикера.
- О других свойствах центроида треугольника смотрите ниже.
Минимаксные свойства центроида треугольника[править | править код]
- Центроид или точка пресечения медиан треугольника является единственной точкой треугольника такой, что проведенные через неё три чевианы разделяют своими концами стороны треугольника на шесть отрезков. При этом произведение длин трёх из этих шести отрезков, не имеющих общих концов, максимально[4].
- Центроид или точка пересечения трёх медиан является точкой, для которой сумма квадратов расстояний до вершин треугольника принимает наименьшее значение (теорема Лейбница).
Центроид четырёх точек (вершин четырёхугольника)[править | править код]
Центроид (барицентр или центр масс) вершин произвольного четырёхугольника лежит в точке пересечения 3-х отрезков: 1-й отрезок соединяет середины диагоналей, два другие — середины противолежащих сторон. Точка пересечения делит все три отрезка пополам.
Четыре отрезка, каждый из которых соединяет вершину четырёхугольника с центроидом треугольника, образованного оставшимися тремя вершинами, пересекаются в одной точке (центроиде вершин четырёхугольника) и делятся ею в отношении 3:1, считая от вершины.
Центр масс вершин четырёхугольника не обязан совпадать с центром масс самого четырёхугольника как плоской фигуры.
Определение местоположения барицентра[править | править код]
Определение местоположения барицентра однородной плоской фигуры методом отвеса[править | править код]
Барицентр однородной плоской фигуры, такой как фигура (a) на рисунке, можно найти экспериментально с использованием отвеса и булавки путём нахождения центра масс тонкой пластины однородной плотности, имеющей ту же форму. Пластина удерживается булавкой, вставленной ближе к периметру так, чтобы пластина могла свободно вращаться. Отмечаем на пластине прямую, которую образует отвес, прикреплённый к булавке (b). Проделываем то же самое с другим положением булавки. Пересечение двух прямых даст барицентр (c).
Этот метод можно распространить (в теории) на вогнутые фигуры, когда барицентр лежит вне их, а также тела (постоянной плотности), но положение линии отвеса придётся отмечать каким-то иным способом.
Определение местоположения барицентра выпуклой двумерной фигуры методом балансировки[править | править код]
Барицентр выпуклой двумерной фигуры можно найти путём балансировки на меньшей фигуре, например, на вершине узкого цилиндра. Барицентр будет находиться где-то внутри области контакта этих фигур. В принципе, последовательным уменьшением диаметра цилиндра можно получить местоположение барицентра с любой точностью. На практике потоки воздуха делают это невозможным, однако используя наложение областей балансировки и усреднение, можно получить нужную точность.
Определение местоположения барицентра для конечного множества точек[править | править код]
Барицентр конечного множества из точек в находится по формуле
- [5].
Полученная точка такая, что сумма квадратов расстояний между ней и точками множества является минимальной.
Определение местоположения барицентра с помощью геометрического разложения[править | править код]
(b) Разложение фигуры на простые элементы
(c) Барицентры элементов объекта
Барицентр плоской фигуры можно вычислить, разделив её на конечное число более простых фигур , найдя положение барицентров и площадей каждой части, а затем вычислив
Дыры в фигуре , наложения частей, или части, выступающие за фигуру, можно рассматривать как фигуры с отрицательной площадью . А именно, знак площади нужно выбирать так, чтобы сумма знаков для всех частей, включающих точку , была равна 1, если принадлежит , и 0 в противном случае.
Например, фигуру (a) на рисунке легко разделить на квадрат и треугольник с положительным знаком, круглое отверстие с отрицательным (b).
Барицентр каждой части легко найти в любом списке барицентров простых фигур (c). Затем вычисляется барицентр фигуры, как средневзвешенное трёх точек. Горизонтальное положение барицентра, считая от левого края фигуры, равно
Вертикальное положение вычисляется аналогично.
Та же формула применима для любого трёхмерного объекта, только обозначают уже объёмы частей тела , а не площади. Формула верна также для пространства любой размерности при замене площади -мерными мерами частей.
Определение местоположения барицентра интегрированием[править | править код]
Барицентр подмножества X пространства можно вычислить с помощью интеграла
где интегрирование ведётся по всему пространству , а g является характеристической функцией подмножества, принимающей 1 внутри X и 0 вне его[6]. Заметим, что знаменатель равен мере множества X. Формула неприменима к множеству нулевой меры, а также к множествам, для которых интеграл расходится.
Другая формула для вычисления координат барицентра:
где Gk является k-й координатой G, а Sk(z) — мера пересечения X с гиперплоскостью, определяемой уравнением xk = z. Снова знаменатель — это мера множества X.
Для плоской фигуры координатами барицентра будут
где A — площадь фигуры X, Sy(x) — длина пересечения[неизвестный термин] X с вертикальной прямой с абциссой x, Sx(y) — аналогичная величина при обмене осей.
Определение местоположения барицентра для области, ограниченной графиками непрерывных функций[править | править код]
Координаты барицентра области, ограниченной графиками непрерывных функций и , таких что на интервале , , задаются выражениями
- [6].
- [7]
где — площадь области (вычисляемая по формуле )[8][9].
Определение местоположения барицентра объекта, имеющего форму буквы L[править | править код]
Метод нахождения барицентра фигуры, имеющей форму буквы L.
- Фигуру делят на два прямоугольника (см. фигуру (2) на рисунке). Находят барицентры A и B этих двух прямоугольников как пересечение диагоналей. Рисуют отрезок AB, соединяющий барицентры. Барицентр фигуры должен лежать на этом отрезке AB.
- Делят фигуру на два прямоугольника другим способом (см. фигуру (3) на рисунке). Находят барицентры C и D этих двух прямоугольников. Проводят отрезок CD, соединяющий барицентры. Барицентр фигуры должен лежать на отрезке CD.
- Поскольку барицентр должен лежать как на отрезке AB, так и на отрезке CD, очевидно, что он является точкой пересечения этих двух отрезков — точкой O. Точка O не обязана лежать внутри фигуры.
Барицентры треугольника и тетраэдра[править | править код]
Точка пересечения медиан (барицентр) делит каждую медиану в отношении 2:1. То есть, расстояние от стороны до барицентра равно 1/3 длины проведённой к стороне высоты
В прямоугольном треугольнике расстояние от одного катета до барицентра равно 1/3 длины другого катета
Барицентр треугольника совпадает с пересечением медиан. Барицентр разбивает каждую медиану в отношении 2:1, то есть барицентр находится на расстоянии ⅓ от стороны до противоположной вершины (см. рисунок). Его декартовыми координатами является среднее координат трёх вершин. То есть, если вершинами треугольника являются , и , то координаты барицентра вычисляются по формуле
- .
Таким образом, барицентр имеет барицентрические координаты .
В трилинейных координатах барицентр можно получить одним из эквивалентных способов[10]:
Барицентр является также физически центром масс треугольника, сделанного из однородного листового материала, а также, если вся масса сконцентрирована в вершинах и одинаково разделена между ними. Если же масса распределена равномерно вдоль периметра, то центр масс лежит в точке Шпикера (инцентре серединного треугольника), который (в общем случае) не совпадает с центроидом всего треугольника.
Площадь треугольника равна 3/2 длины любой стороны, умноженной на расстояние от центроида до стороны[11].
Центроид треугольника лежит на прямой Эйлера между его ортоцентром и центром его описанной окружности , ровно вдвое ближе ко второму, чем к первому:
- .
Кроме того, для инцентра и центра девяти точек , мы имеем
- ,
- ,
- ,
- ,
- .
Аналогичными свойствами обладает тетраэдр — его барицентр является пересечением отрезков, соединяющих вершины с барицентрами противоположных граней. Эти отрезки делятся барицентром в отношении 3:1. Результат может быть обобщён на любой -мерный симплекс. Если вершины симплекса обозначить и рассматривать вершины как вектора, центроид равен
- .
Геометрический барицентр совпадает с центром масс, если масса равномерно распределена по всему симплексу или сосредоточена в вершинах как равных масс.
Изогональным сопряжением центроида треугольника является точка пересечения его симедиан.
Барицентр тетраэдра[править | править код]
Тетраэдр является телом в трёхмерном пространстве, имеющим четыре треугольника в качестве граней. Отрезок, соединяющий вершину тетраэдра с барицентром противоположной грани, называется медианой, а отрезок, соединяющий середины двух противоположных сторон, называется бимедианой. Таким образом, имеется четыре медианы и две бимедианы. Эти шесть отрезков пересекаются в барицентре тетраэдра[12]. Барицентр тетраэдра лежит посередине между точкой Монжа и центром описанной сферы. Эти точки задают прямую Эйлера тетраэдра, являющуюся аналогом прямой Эйлера треугольника.
Барицентр многоугольника[править | править код]
Барицентром самонепересекающегося замкнутого многоугольника, заданного вершинами , , , , является точка , где
- ;
и где является площадью многоугольника (со знаком):
- [13].
В этой формуле предполагается, что вершины пронумерованы вдоль периметра многоугольника. Кроме того, вершина считается той же самой, что и .
Заметим, что если точки пронумерованы по часовой стрелке, площадь , вычисленная выше, будет отрицательной, но координаты барицентра подкорректируют этот случай.
Барицентры конуса и пирамиды[править | править код]
Барицентр конуса или пирамиды расположен на отрезке, соединяющем вершину тела с барицентром основания. Для целого конуса или пирамиды барицентр находится на расстоянии 1/4 от основания к вершине. Для поверхности конуса или пирамиды (боковая поверхность без внутренности и без основания) центроид находится на 1/3 расстояния от основания до вершины.
См. также[править | править код]
- Центр масс
- Центроид треугольника
- Центр тяжести
- Центр Чебышева[en]
- Среднее Фреше[en]
- k-means
- Список барицентров
- Теоремы Паппа — Гульдина
- Замечательные точки треугольника
Примечания[править | править код]
- ↑ Altshiller-Court, 1925, с. 101.
- ↑ Kay, 1969, с. 18,189,225–226.
- ↑ 1 2 Altshiller-Court, 1925, с. 70–71.
- ↑ Зетель, 1962.
- ↑ Protter, Morrey, 1970, с. 520.
- ↑ 1 2 Protter, Morrey, 1970, с. 526.
- ↑ Protter, Morrey, 1970, с. 527.
- ↑ Protter, Morrey, 1970.
- ↑ Larson, Hostetler, Edwards, 1998, с. 458–460.
- ↑ Encyclopedia of Triangle Centers Архивная копия от 19 апреля 2012 на Wayback Machine by Clark Kimberling. The centroid is indexed as X(2).
- ↑ Johnson, 2007, с. 173.
- ↑ Kam-tim, Suk-nam, 1994, с. 53–54.
- ↑ Bourke, 1997.
Литература[править | править код]
- Зетель, С. И. Новая геометрия треугольника. Пособие для учителей. — 2-е изд/. — М. : Учпедгиз, 1962. — С. 12.
- Leung Kam-tim, Suen Suk-nam. Vectors, matrices and geometry. — Hong Kong University Press, 1994.
- Nathan Altshiller-Court. College Geometry: An Introduction to the Modern Geometry of the Triangle and the Circle. — 2nd. — New York: Barnes & Noble, 1925.
- Paul Bourke. Calculating the area and centroid of a polygon. — 1997.
- Roger A. Johnson. Advanced Euclidean Geometry. — Dover, 2007.
- David C. Kay. College Geometry. — New York: Holt, Rinehart and Winston, 1969.
- Roland E. Larson, Robert P. Hostetler, Bruce H. Edwards. Calculus of a Single Variable. — 6th. — Houghton Mifflin Company, 1998.
- Murray H. Protter, Charles B. Morrey Jr. College Calculus with Analytic Geometry. — 2nd. — Reading: Addison-Wesley, 1970.
Ссылки[править | править код]
- Characteristic Property of Centroid at cut-the-knot
- Barycentric Coordinates at cut-the-knot
- Interactive animations showing Centroid of a triangle and Centroid construction with compass and straightedge
- Experimentally finding the medians and centroid of a triangle at Dynamic Geometry Sketches, an interactive dynamic geometry sketch using the gravity simulator of Cinderella.
- Главная
- Список секций
- Математика
- ОПРЕДЕЛЕНИЕ ГЕОМЕТРИЧЕСКИХ ЦЕНТРОВ СЛОЖНЫХ ФИГУР
ОПРЕДЕЛЕНИЕ ГЕОМЕТРИЧЕСКИХ ЦЕНТРОВ СЛОЖНЫХ ФИГУР
- Авторы
- Руководители
- Файлы работы
- Наградные документы
Сенагатуллина А.К. 1
1МБОУ “Биляр-Озерская СОШ” Нурлатского МР РТ
Токарева Е.Г. 1
1МБОУ “Биляр-Озерская СОШ”
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке “Файлы работы” в формате PDF
Введение.
«Если вы хотите участвовать в большой жизни, то наполняйте свою голову математикой, пока есть к тому возможность. Она окажет вам потом огромную помощь во всей вашей работе.» Эти слова принадлежат М.И. Калинину.
И действительно, это так, на сегодняшний день, в век инновационных технологий эта крылатая фраза имеет еще большое значение в современной жизни человека. Лишь математика как самый надежный инструмент может представить истину познания человеку в абсолютно любой области.
Тема определения центров областей, губерний, республик не нова. Многие территориальные образования уже давно обзавелись стелами, памятными камнями, обозначающими географический центр. Над этим работали и студенты, и научные работники и обучающиеся школ. И я тоже задалась проблемой определения центра неправильной фигуры, в первую очередь методов, понятных и доступных для большинства обучающихся, также проверки этого метода всеми возможными способами, ну и конечно, определение самого центра, для исследования которого взяла город Нурлат.
Цель проекта: найти центр г. Нурлат
Задачи проекта:Рассмотреть приемы исследовательской деятельности, методы, формы и способы научного исследования, научного познания.Формировать мотивацию исследовательской деятельности.Формировать творческую активность.Развивать самостоятельность.
Ожидаемые результаты:
Узнать методы и приемы определения центра сложных фигур, в частности географического центра города Нурлат;ощутить себя в роли экспериментатора, провести простые, но поучительные опыты по определению центров различных фигур;
закрепить вычислительные навыки, навыки вычисления площадей геометрических фигур, что позволит успешно сдать экзамены по математике.
План работы:
1. Выбор направления и темы работы2. Постановка цели и задач3. Изучение теории4. Поиск и подготовка материалов5 Проверка точности теоретических вычислений опытным путем.
6. Выводы7. Оформление работы и Презентация.
Историческая справка
Центр тяжести – неизменно связанная с твердым телом точка, через которую проходит равнодействующая сил тяжести, действующих на частицы этого тела при любом положении тела в пространстве. У однородного тела, имеющего центр симметрии (круг, шар, куб и т. д.), центр тяжести находится в центре симметрии тела.
Понятие о центре тяжести было впервые изучено примерно 2200 лет назад греческим геометром Архимедом, величайшим математиком древности. С тех пор это понятие стало одним из важнейших в механике, а также позволило сравнительно просто решать некоторые геометрические задачи.
У каждого предмета есть центр тяжести. Изучение этого свойства тел необходимо для понимания понятия равновесия тел, при решении конструкторских задач, расчете устойчивости сооружений и во многих других случаях.
Теоретическая часть
1. Понятие о центре тяжести
Каждое тело можно представить как систему материальных частиц, взаимодействующих с Землей. Суммарный результат этого взаимодействия — равнодействующая элементарных сил тяжести. Точка приложения этой равнодействующей называется центром тяжести тела. Поскольку элементарные силы тяжести образуют систему параллельных сил, то центр тяжести обладает всеми свойствами центра параллельных сил. Следовательно, при любом положении тела в пространстве положение центра тяжести остается неизменным.
2. Определение центра тяжести плоских фигур
Положение центра тяжести плоских фигур (т. е. весьма тонких тел) можно определить аналитически и экспериментально.
Аналитически центр тяжести находится как центр параллельных сил. При этом возможны три случая:
фигура имеет две оси симметрии — центр тяжести находится на пересечении осей;
фигура имеет одну ось симметрии — центр тяжести лежит на этой оси, необходимо отыскать одну координату;
фигура не имеет осей симметрии — положение центра тяжести заранее неизвестно, надо определить две координаты.
Заданную фигуру разбивают на простейшие, положение центров тяжести которых вполне определенно, и затем подсчитывают искомые координаты по следующим формулам:
хс = ;
(1)
yc= ,
где х1, х2, …,хn и у1,,у2,…, уn – координаты центров тяжести простейших фигур;
S1, S2,…, Sn – площади простейших фигур.
3. Центр тяжести простых фигур
Отрезок – его середина;
Параллелограмм – точка пересечения диагоналей;
Треугольник – точка пересечения медиан;
Круг – его центр.
4. Центр тяжести сложной фигуры
Задача 1. Определить координаты центра тяжести однородной пластинки, изображенной на рисунке, зная, чтоАН=2см, HG=1,5см, AB=3см, BK=10см, EF=4см, ED=2см.
Решение. Фигура не имеет осей симметрии, следовательно, для определения центра тяжести надо найти две его координаты. Проводим оси Ох и Оу и разбиваем пластину на три прямоугольника: AHGL, LRKB и EDRF (линии разреза показаны на рисунке). Вычисляем координаты центров тяжести каждого из прямоугольников и их площади:
Для прямоугольника AHGL S1=AH∙HG; x1= ; y1=LB+.
Так как LB=AB-HG=3-1,5=1,5см, то S1=2∙1,5=3 см2; x1==1 см; y1= 1,5+=1,5+0,75=2,25 см .
Для прямоугольника LRKB S2=BK∙LB; x2= ; y2=,
т.е. S2=10∙1,5=15 см2; x2==5 см; y2==0,75 см.
Для прямоугольника EDRF S3=BD∙EF; x3=BK-; y3=LB+,
т.е. S3=2∙4=8 см2; x3=10-=9 см; y3= 1,5+=3,5 см.
По формулам (1) получаем:
Xc==5 см; Yc==1 см.
5. Координаты центра тяжести площади треугольника.
Разобьем площадь треугольника ABD на бесконечно тонкие элементарные полоски, параллельные основанию AB. Центр тяжести каждой такой полоски расположен в ее середине. Геометрическое место центров тяжести всех полосок есть медиана OE. На ней поэтому и должен лежать центр тяжести всего треугольника. Так как такое же рассуждение справедливо и для двух других медиан, то центр тяжести треугольника лежит в точке пересечения его медиан. При задании вершин треугольника их координатами получим
XC=(xA+xB+xD); (2)
YC=(yA+yB+yD)
Экспериментальный способ основан на том, что при любом положении тела линия действия силы тяжести проходит через центр тяжести и заключается в последовательном подвешивании тела (плоской фигуры) за любые две точки. На пересечении отвесов, проходящих через эти точки, и будет находиться центр тяжести. Проверить это можно, если на остриё карандаша поместить фигуру в найденном центре тяжести. Она окажется в равновесии.
Практическая часть.
Изначально был найден центр Нурлатского района, он находится вблизи села Тюрнясево. А я задумала найти центр города Нурлат. Сейчас эта тема достаточно популярна. Я в своей работе сделала возможным найти приблизительные координаты этого исторического места, и тем не менее считаю работу выполненной. Положительный момент, который мне помог в вычислениях – это относительно ровный ландшафт, а сложность в том, что конфигурация территории города извилистая. Не каждое территориальное образование имеет географический центр, например, центр территории России невозможно найти, т.к. она имеет острова и Калининградскую область, расположенные обособленно.
Перед началом работы я разобрала теоретические вопросы, изучила методы и приемы определения центра различных фигур. Опробовала эти методы на простейших фигурах, затем перешла к более сложным фигурам, центр тяжести которых определяется методом группировки.
Определение центра города Нурлат Нурлатского района республики Татарстан
1. Для определения границ Нурлата я воспользовалась генеральным планом-схемой, которая размещена на сайте Нурлатского муниципального района http://nurlat.tatarstan.ru/rus/generalniy-plan-goroda-nurlat.htm .(Рис.1)
2. Далее увеличенное изображение карты перенесла на миллиметровую бумагу, т.к. требовалась работа с координатами.(Рис.2)
3. Затем разбила территорию города на множество простейших фигур, координаты центров которых определить относительно легко.(Рис.2)
4. Затем по формулам, описанным выше, вычислила координаты центра.(см Таблица)
5. Для подтверждения результата я применила физические методы исследования, используя простейшие приемы из статики. Для этого я перенесла карту на плоский картон, вырезала изображение по контуру и проверила точку центра, используя метод подвесов и вертикальный упор. Все полученные результаты совпали. (см. Фото3,4)
Центром города Нурлат является точка, которая расположена в области железнодорожного вокзала.
Заключение.
Тема вынашивалась давно, но реализовать ее раньше не удавалось по причине того, что практически ежегодно вносились изменения в границы города. Сначала к территории города были присоединены близлежащие поселки Ключи, Верхний Нурлат, Нижний Нурлат, позже с выделением земельных участков для многодетных семей, к территории города были присоединены новые площади, которые изменили границы города. Последняя версия карты с границами нашего районного центра размещена на сайте Нурлатского муниципального района.
Методы, которые я использовала, с успехом можно применять для определения подобных точек различных территориальных образований. Ожидаемые результаты осуществлены.
Литература и информационные ресурсы:
1. Геометрия. 7-9 классы: учеб. Для общеобразоват. Организаций/[Л.С. Атанасян, В.Ф. Бутузов, С. Б. Кадомцев и др.].- 2-еизд. – М.:Просвещение, 2014. – 383с.
2. Гольдин, И. И. Основные сведения по технической механике: Учеб.пособие для сред.ПТУ / И. И. Гольдин. – 3-е изд.,перераб.и доп. – М. : Высшая школа, 1986. – 96с.
3. https://ru.wikipedia.org/wiki
4. http://nwpi-fsap.narod.ru/lists/statika/5.htm.
5.http://freemath.ru/publ/istorija_matematiki/vyskazyvanija_o_matematike/vyskazyvanija_o_matematike/19-1-0-36
Приложение
Рис.1 Рис.2
Таблица. Координаты центров и площади простейших фигур
i |
xi |
yi |
Si |
Xi∙Si |
yi∙Si |
Для прямоугольников |
|||||
1 |
25 |
30 |
600 |
15000 |
18000 |
2 |
21,1 |
48,5 |
85,4 |
1801,94 |
4141,9 |
3 |
31,8 |
45,7 |
9,75 |
310,05 |
445,575 |
4 |
37,3 |
44,4 |
22,09 |
823,957 |
980,796 |
5 |
37,4 |
41 |
9,2 |
344,08 |
377,2 |
6 |
37,5 |
37,5 |
25 |
937,5 |
937,5 |
7 |
37,5 |
32,5 |
25 |
937,5 |
812,5 |
8 |
41 |
35,5 |
2 |
82 |
71 |
9 |
40,7 |
33,6 |
3,64 |
148,148 |
122,304 |
10 |
37,3 |
26,9 |
27,6 |
1029,48 |
742,44 |
11 |
35,8 |
23,5 |
1,5 |
53,7 |
35,25 |
12 |
36,3 |
20,8 |
11,7 |
424,71 |
243,36 |
13 |
39,25 |
22,25 |
0,25 |
9,8125 |
5,5625 |
14 |
38,4 |
20,8 |
3,52 |
135,168 |
73,216 |
15 |
38,9 |
19,1 |
3,12 |
121,368 |
59,592 |
16 |
38,5 |
11,75 |
94,5 |
3638,25 |
1110,375 |
17 |
43,7 |
12,1 |
27,06 |
1182,522 |
327,426 |
18 |
45,65 |
12,55 |
6,12 |
279,378 |
76,806 |
19 |
43 |
7 |
4 |
172 |
28 |
20 |
37 |
4,4 |
4,8 |
177,6 |
21,12 |
21 |
34,3 |
4,4 |
3,15 |
108,045 |
13,86 |
22 |
33 |
4,1 |
1,7 |
56,1 |
6,97 |
23 |
31,15 |
8,1 |
0,84 |
26,166 |
6,804 |
24 |
32,35 |
12,1 |
30,74 |
994,439 |
371,954 |
25 |
25,3 |
13,55 |
26,1 |
660,33 |
353,655 |
26 |
27,5 |
11,5 |
2,4 |
66 |
27,6 |
27 |
21,75 |
11,7 |
1,12 |
24,36 |
13,104 |
28 |
20,65 |
13,95 |
0,35 |
7,2275 |
4,8825 |
29 |
19,2 |
14,6 |
2,88 |
55,296 |
42,048 |
30 |
14,3 |
13,8 |
5,5 |
78,65 |
75,9 |
31 |
12,65 |
14,1 |
1,62 |
20,493 |
22,842 |
32 |
7,85 |
13,75 |
22 |
172,7 |
302,5 |
33 |
10,15 |
12,25 |
1,05 |
10,6575 |
12,8625 |
34 |
8 |
11,05 |
0,7 |
5,6 |
7,735 |
35 |
2,9 |
14,5 |
1,3 |
3,77 |
18,85 |
36 |
10 |
20 |
100 |
1000 |
2000 |
37 |
3,75 |
18 |
15 |
56,25 |
270 |
38 |
4 |
22 |
4 |
16 |
88 |
39 |
4,5 |
23,75 |
1,5 |
6,75 |
35,625 |
40 |
6,75 |
25,75 |
5,25 |
35,4375 |
135,1875 |
41 |
7,35 |
26,5 |
2,2 |
16,17 |
58,3 |
42 |
9,5 |
27,7 |
10,8 |
102,6 |
299,16 |
43 |
12,75 |
30 |
45 |
573,75 |
1350 |
44 |
12,5 |
40,3 |
52,5 |
656,25 |
2115,75 |
45 |
7,6 |
40,35 |
32,16 |
244,416 |
1297,656 |
46 |
8,9 |
34,25 |
4,65 |
41,385 |
159,2625 |
47 |
8,35 |
36 |
6,6 |
55,11 |
237,6 |
48 |
6,1 |
36,5 |
1,2 |
7,32 |
43,8 |
49 |
14,35 |
46,75 |
3,25 |
46,6375 |
151,9375 |
50 |
14,75 |
48,45 |
0,45 |
6,6375 |
21,8025 |
51 |
40 |
27,4 |
1,55 |
62 |
42,47 |
52 |
23,5 |
2,7 |
0,54 |
12,69 |
1,458 |
53 |
29,6 |
11,6 |
0,12 |
3,552 |
1,392 |
Для треугольников |
|||||
1 |
27,63 |
47,3 |
45,5 |
1257,165 |
2152,15 |
2 |
28,4 |
46 |
0,225 |
6,39 |
10,35 |
3 |
39,8 |
43,7 |
0,72 |
28,656 |
31,464 |
4 |
39,8 |
40,66 |
0,6 |
23,88 |
24,396 |
5 |
40,66 |
37,33 |
4 |
162,64 |
149,32 |
6 |
41.5 |
34,6 |
0,36 |
14,94 |
12,456 |
7 |
41,6 |
32,73 |
0,72 |
29,952 |
23,5656 |
8 |
40,73 |
31,46 |
2,42 |
98,5666 |
76,1332 |
9 |
39.85 |
29,9 |
0,045 |
1,79325 |
1,3455 |
10 |
39,85 |
29,2 |
0,165 |
6,57525 |
4,818 |
11 |
40,43 |
28,8 |
0,385 |
15,56555 |
11,088 |
12 |
40,46 |
28,7 |
0,13 |
5,2598 |
3,731 |
13 |
40,63 |
27,13 |
0,78 |
31,6914 |
21,1614 |
14 |
40,26 |
27,66 |
0,3 |
12,078 |
8,298 |
15 |
39,86 |
25,73 |
0,125 |
4,9825 |
3,21625 |
16 |
39,83 |
25,03 |
0,28 |
11,1524 |
7,0084 |
17 |
39,3 |
24,93 |
0,09 |
3,537 |
2,2437 |
18 |
37,9 |
23,6 |
1,44 |
54,576 |
33,984 |
19 |
37 |
23,33 |
0,75 |
27,75 |
17,4975 |
20 |
37,7 |
22,66 |
0,15 |
5,655 |
3,399 |
21 |
39,3 |
21,76 |
0,105 |
4,1265 |
2,2848 |
22 |
39,3 |
21,23 |
0,135 |
5,3055 |
2,86605 |
23 |
39,4 |
19,33 |
0,21 |
8,274 |
4,0593 |
24 |
40,8 |
18,4 |
1,08 |
44,064 |
19,872 |
25 |
43,1 |
16,96 |
5,775 |
248,9025 |
97,944 |
26 |
45,86 |
15,46 |
0,935 |
42,8791 |
14,4551 |
27 |
47,8 |
12,83 |
6,15 |
293,97 |
78,9045 |
28 |
48,7 |
14,71 |
1 |
48,7 |
14,71 |
29 |
48,98 |
14,1 |
1,035 |
50,6943 |
14,5935 |
30 |
45,86 |
9,3 |
1,6 |
73,376 |
14,88 |
31 |
44,43 |
7,36 |
1,235 |
54,87105 |
9,0896 |
32 |
42,6 |
5,7 |
0,9 |
38,34 |
5,13 |
33 |
39,96 |
3,93 |
1,74 |
69,5478 |
6,8382 |
34 |
37,6 |
3,6 |
0,77 |
28,952 |
2,772 |
35 |
35.6 |
3,7 |
0,27 |
9,612 |
0,999 |
36 |
32,3 |
4 |
0,43 |
13,889 |
1,72 |
37 |
33,3 |
5,2 |
0,15 |
4,995 |
0,78 |
38 |
34,1 |
5,8 |
0,6 |
20,46 |
3,48 |
39 |
33,5 |
8 |
8,3 |
278,05 |
66,4 |
40 |
30,6 |
8,7 |
0,2 |
6,12 |
1,74 |
41 |
29,6 |
9,7 |
0,3 |
8,88 |
2,91 |
42 |
28,7 |
12 |
0,1 |
2,87 |
1,2 |
43 |
26,9 |
10,8 |
0,18 |
4,842 |
1,944 |
44 |
25,7 |
11,6 |
0,12 |
3,084 |
1,392 |
45 |
24,6 |
11, |
1,53 |
37,638 |
16,83 |
46 |
23,4 |
1,7 |
0,29 |
6,786 |
0,493 |
47 |
22,6 |
11,9 |
0,18 |
4,068 |
2,142 |
48 |
21,9 |
11,2 |
0,17 |
3,723 |
1,904 |
49 |
20,9 |
13,4 |
0,12 |
2,508 |
1,608 |
50 |
17,8 |
14 |
0,39 |
6,942 |
5,46 |
51 |
17 |
14 |
0,98 |
16,66 |
13,72 |
52 |
16 |
14,2 |
2,25 |
36 |
31,95 |
53 |
14,2 |
12,4 |
0,36 |
5,112 |
4,464 |
54 |
4,4 |
12,3 |
0,25 |
1,1 |
3,075 |
55 |
11,3 |
11,8 |
0,18 |
2,034 |
2,124 |
56 |
8,6 |
11,2 |
0,12 |
1,032 |
1,344 |
57 |
8,4 |
11,8 |
0,9 |
7,56 |
10,62 |
58 |
8,1 |
12,1 |
1,38 |
11,178 |
16,698 |
59 |
3,3 |
13 |
0,45 |
1,485 |
5,85 |
60 |
2,4 |
15,9 |
0,54 |
1,296 |
8,586 |
61 |
5,7 |
21,4 |
0,17 |
0,969 |
3,638 |
62 |
3,7 |
23,4 |
0,54 |
1,998 |
12,636 |
63 |
4,7 |
25,1 |
0,81 |
3,807 |
20,331 |
64 |
5,6 |
26,6 |
0,24 |
1,344 |
6,384 |
65 |
8 |
28,1 |
1,23 |
9,84 |
34,563 |
66 |
10,4 |
36,5 |
0,62 |
6,448 |
22,63 |
67 |
9,7 |
33,3 |
0,21 |
2,037 |
6,993 |
68 |
7,2 |
34,5 |
0,49 |
3,528 |
16,905 |
69 |
6,5 |
35,7 |
0,3 |
1,95 |
10,71 |
70 |
5,4 |
36,7 |
0,18 |
0,972 |
6,606 |
71 |
5 |
41,4 |
1,35 |
6,75 |
55,89 |
72 |
4,9 |
42,9 |
0,88 |
4,312 |
37,752 |
73 |
8,4 |
44,3 |
4,47 |
37,548 |
198,021 |
74 |
12,5 |
46 |
2,59 |
32,375 |
119,14 |
75 |
14,3 |
48,3 |
0,3 |
4,29 |
14,49 |
Для окружностей |
|||||
1 |
10,7 |
11,4 |
0,785 |
8,3995 |
8,949 |
2 |
12,7 |
12 |
0,785 |
9,9695 |
9,42 |
3 |
19,8 |
13,7 |
0,785 |
15,543 |
10,7545 |
Сумма |
1473,8 |
36306,77 |
41894,16 |
Расчеты координат центра карты в рассмотренной системе координат
Фото 1 Фото 2.
Просмотров работы: 2779
Добро пожаловать!
Войдите или зарегистрируйтесь сейчас!
Войти
-
Форумчанин
Привет!
вот возник вопрос как определить геометрический центр помещения неправильной формы (на картинке). Либо достраивать до прямоугольника с 4-мя углами и делить длину и ширину пополам, либо просто начертить диагонали- и в месте пересечения будет геом. центр?
Вложения:
#1
-
-
Форумчанин
- Регистрация:
- 30 ноя 2007
- Сообщения:
- 2.702
- Симпатии:
- 2.440
- Адрес:
-
Сибирь
Врукопашную (раскрыть)
Врукопашную (свернуть)
Если фигура несимметрична и замысловата, то определить центр сложнее. Попробуйте перенести план на лист тонкого картона, вырезать фигуру по контурам и найти приблизительный центр тяжести. Кладя картонную фигуру на острие иглы или шила, методом проб и ошибок отыщите положение, в котором фигура будет удерживаться на острие.
Предостерегаю вас от распространенной ошибки. Нужно найти реальный геометрический центр или центр тяжести плана реальной квартиры, а не центр какой-то мифической квартиры, план которой состоит из плана реальной квартиры, дополненного несуществующей площадью до правильной фигуры. Такой прием облегчает работу, но искажает смысл.
Некоторые исследователи предлагают следующий способ. План дома или квартиры нужно перенести на картон, а затем вырезать его по периметру.
Приготовьте несложный инструмент – к булавке привяжите нитку с небольшим грузиком на конце. Теперь нужно втыкать булавку в каждый из углов плана, позволяя плану на картонке свободно болтаться на булавке и прочерчивать на картонке линию-тень от нитки. Точка пересечения образованных линий и будет центром плана. Лично я этот способ не использую, потому что считаю более простым и удобным способ нахождения центра опытным путем, подставляя булавку снизу.
Источник
программно (раскрыть)
программно (свернуть)
Ставит точку в центре масс выбранной полилинии
Источник
Вложения:
#2
-
Форумчанин
- Регистрация:
- 31 янв 2009
- Сообщения:
- 165
- Симпатии:
- 4
- Адрес:
-
Чита
Если геометрический центр помещения неправильной формы – есть центр тяжести плоской или пространственной фигуры, состоящей из элементарных фигур, то центр тяжести определить легко путем вычисления статического момента элементарных фигур в одной общей произвольной системе координат. Деление статических моментов на площадь (объем, массу) всей неправильной фигуры позволят получить координаты центра тяжести (геометрического центра) в произвольной системе координат.
Это же чистый сопромат, строительная механика, теоретическая механика без всякого autocada и программирования.
#3
-
Форумчанин
- Регистрация:
- 30 ноя 2007
- Сообщения:
- 2.702
- Симпатии:
- 2.440
- Адрес:
-
Сибирь
Всего-то делов… посчитать не программно площадь неправильной фигуры и найти статические моменты например нам(геодезистам) в институте не преподавали ни сопромат ни строительную механику, была только основа теоретической механики
#4
-
Форумчанин
- Регистрация:
- 31 янв 2009
- Сообщения:
- 165
- Симпатии:
- 4
- Адрес:
-
Чита
Задача решается просто.
На примере плоской фигуры.
1. Фигура устанавливается в произвольную систему координат, например, параллельно одной-двум ее сторонам.
2. Сама фигура при этом разбивается на составляющие ее элементарные прямоугольники, треугольники, секторы круга или полные круги. Можно также дополнять исходный контур дополнительными элементарными контурами.
3. Для каждой элементарный фигуры определяется ее площадь (Ai) и координаты центра тяжести в произвольной системе координат (Xci, Yci). Например, центр тяжести прямоугольника находится на пересечении его диагоналей, а у треугольника – на уровне 1/3 его высот. У допонительных элементарных контуров площадь принимается отрицательной.
4. Вычисляются статические моменты относительно произвольных осей Sxпр=сумма (Ai*Yci) и Sупр=сумма (Ai*Xci)
5. Вычисляется площадь исходной фигуры A=сумма(Ai)
6. Координаты центра тяжести исходной фигуры в произвольной системе координат определяются как Xc=Syпр/A и Xc=Syпр/AНа рисунке показана фигура (полилиния). В ней взято две положительных площади 1 и 2, и две отрицательных (дополнительных) площади 3 и 4. Произвольные оси параллельны сторонам фигуры.
PS: А по ссылке показан слишком уж мудреный ответ в наиболее общем случае и для криволинейных контуров разной сложности. В линейном или окружном случае он гораздо проще (без интегралов).
Вложения:
#5
-
Форумчанин
- Регистрация:
- 5 мар 2010
- Сообщения:
- 175
- Симпатии:
- 4
- Адрес:
-
Москва
А почему бы не определить центр тяжести фигуры аналогично графическому способу определения центра тяжести полигонометрического хода, представив, что фигура это замкнутый полигонометрический ход? а каде, я думаю, не составит труда..
#6
-
Форумчанин
- Регистрация:
- 31 янв 2009
- Сообщения:
- 165
- Симпатии:
- 4
- Адрес:
-
Чита
В каде да, лисп значительно ускорит процесс. На бумаге для несложных контуров проще по площадям, особенно если нужно показать процесс определения.
#7
Поделиться этой страницей
Голосование за лучший ответ
Отражение Луны
Мыслитель
(8421)
11 лет назад
провести прямые со всех вершин. пересечение не будет центром?.. просто я сама не знаю.. можно. я подпишусь? послушю других?
александр амелькин
Мудрец
(14339)
11 лет назад
Центр, по-моему, есть только у круга и окружности. Но можно вырезать эту фигуру и найти центр тяжести.
Владимир Костюк
Искусственный Интеллект
(120367)
11 лет назад
Нарисовать её в Компас, Включить “Измерения 2D”. Он выдаст таблицу с координатами центра тяжести плоской фигуры и др.
Here are six different approaches I have tried.
cv2
based center of mass (get_center_of_mass
)shapely
based representative point (get_representative_point
)cv2
+skimage.skeleton
based center of mass of the skeletonized shape (get_skeleton_center_of_mass
)scipy
based furthest distance to border (get_furthest_point_from_edge
)cv2
based version of the previous furthest distance to border -algorithm (get_furthest_point_from_edge_cv2
)- the “center point of half-area line” algorithm proposed in this thread by @T.Austin (
get_center_of_half_area_line
)
Let’s begin with imports and some helper functions
import numpy as np
import cv2
from shapely.geometry import Polygon, LineString, MultiLineString, Point, MultiPoint, GeometryCollection
from skimage.morphology import skeletonize, medial_axis
from scipy.optimize import minimize_scalar
from scipy.ndimage.morphology import distance_transform_edt
import matplotlib.pyplot as plt
H, W = 300, 300
def get_random_contour():
xs = np.random.randint(0, W, 4)
ys = np.random.randint(0, H, 4)
cnt = np.array([[x,y] for x,y in zip(xs,ys)])
mask = draw_contour_on_mask((H,W), cnt)
cnt, _ = cv2.findContours(mask, 1, 2)
cnt = cnt[0]
return cnt
def draw_contour_on_mask(size, cnt, color:int = 255):
mask = np.zeros(size, dtype='uint8')
mask = cv2.drawContours(mask, [cnt], -1, color, -1)
return mask
def get_center_of_mass(cnt):
M = cv2.moments(cnt)
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
return cx, cy
def split_mask_by_line(mask, centroid:tuple, theta_degrees:float, eps:float = 1e-4):
h, w = mask.shape[:2]
mask = mask[..., None]
cx, cy = centroid
# convert theta first to radians and then to line slope(s)
theta_degrees = np.atleast_1d(theta_degrees)
theta_degrees = np.clip(theta_degrees, -90+eps, 90-eps)
theta_rads = np.radians(theta_degrees)
slopes = np.tan(theta_rads)[:, None]
# define the line(s)
x = np.arange(w, dtype="int32")
y = np.int32(slopes * (x - cx) + cy)
_y = np.arange(h, dtype="int32")
# split the input mask into two halves by line(s)
m = (y[..., None] <= _y).T
m1 = (m * mask).sum((0,1))
m2 = ((1 - m) * mask).sum((0,1))
m2 = m2 + eps if m2==0 else m2
# calculate the resultant masks ratio
ratio = m1/m2
return (x.squeeze(), y.squeeze()), ratio
def get_half_area_line(mask, centroid: tuple, eps: float = 1e-4):
# find the line that splits the input mask into two equal area halves
minimize_fun = lambda theta: abs(1. - split_mask_by_line(mask, centroid, theta, eps=eps)[1].item())
bounds = np.clip((-90, 90), -90 + eps, 90 - eps)
res = minimize_scalar(minimize_fun, bounds=bounds, method='bounded')
theta_min = res.x
line, _ = split_mask_by_line(mask, centroid, theta_min)
return line
Now let’s define the functions for finding the visual center
def get_representative_point(cnt):
poly = Polygon(cnt.squeeze())
cx = poly.representative_point().x
cy = poly.representative_point().y
return cx, cy
def get_skeleton_center_of_mass(cnt):
mask = draw_contour_on_mask((H,W), cnt)
skel = medial_axis(mask//255).astype(np.uint8) #<- medial_axis wants binary masks with value 0 and 1
skel_cnt,_ = cv2.findContours(skel,1,2)
skel_cnt = skel_cnt[0]
M = cv2.moments(skel_cnt)
if(M["m00"]==0): # this is a line
cx = int(np.mean(skel_cnt[...,0]))
cy = int(np.mean(skel_cnt[...,1]))
else:
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
return cx, cy
def get_furthest_point_from_edge(cnt):
mask = draw_contour_on_mask((H,W), cnt)
d = distance_transform_edt(mask)
cy, cx = np.unravel_index(d.argmax(), d.shape)
return cx, cy
def get_furthest_point_from_edge_cv2(cnt):
mask = draw_contour_on_mask((H,W), cnt)
dist_img = cv2.distanceTransform(mask, distanceType=cv2.DIST_L2, maskSize=5).astype(np.float32)
cy, cx = np.where(dist_img==dist_img.max())
cx, cy = cx.mean(), cy.mean() # there are sometimes cases where there are multiple values returned for the visual center
return cx, cy
def get_center_of_half_area_line(cnt):
mask = draw_contour_on_mask((H,W), cnt, color=1)
# get half-area line that passes through centroid
cx, cy = get_center_of_mass(mask)
line = get_half_area_line(mask, centroid=(cx, cy))
line = LineString(np.array(list(zip(line))).T.reshape(-1, 2))
# find the visual center
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
contours = [c for c in contours if cv2.contourArea(c) > 5]
polys = [Polygon(c.squeeze(1)) for c in contours if len(c) >= 3] # `Polygon` must have at least 3 points
cpoint = Point(cx, cy)
points = []
for poly in polys:
isect = poly.intersection(line)
if isect.is_empty:
# skip when intersection is empty: this can happen for masks that consist of multiple disconnected parts
continue
if isinstance(isect, (MultiLineString, GeometryCollection)):
# take the line segment intersecting with `poly` that is closest to the centroid point
isect = isect.geoms[np.argmin([g.distance(cpoint) for g in isect.geoms])]
if isinstance(isect, Point):
# sometimes the intersection can be a singleton point
points.append(isect)
continue
isect = isect.boundary
if poly.intersects(cpoint):
points = [isect]
break
else:
points.append(isect)
if len(points) == 0:
# multiple reasons for this one:
# - if len(polys)==0
# - if len(polys)==1, but for some reason the line does not intersect with polygon
# - if the above search does not match with any points
return cx, cy
points = points[np.argmin([p.distance(cpoint) for p in points])]
if isinstance(points, Point):
return np.array(points.xy)
points = [np.array(p.xy).tolist() for p in points.geoms]
visual_center = np.average(points, (0, 2))
return visual_center
Here’s my analysis on the topic:
get_center_of_mass
is the fastest but, as mentioned in this thread, the center of mass can be located outside the shape for non-convex shapes.get_representative_point
is also fast but the identified point, although always guaranteed to stay inside the shape (or with minor edits even multiple disconnected shapes!), does not have much if anything to do with the center of the objectget_skeleton_center_of_mass
returns a perceptually nice center point, but is slow and requires logic for disconnected shapesget_furthest_point_from_edge
is relatively fast, generalizes easily to disconnected shapes and the center point is visually pleasingget_furthest_point_from_edge_cv
performs otherwise similarly asget_furthest_point_from_edge
but is an order of magnitude fasterget_center_of_half_area_line
performs neatly: the result is usually closest to where I myself would annotate the visual center. Unfortunately, at least my implementation is quite slow.
rows = 4
cols = 4
markers = ['x', '+', "*", "o", '^', "v"]
colors = ['r','b','g','orange', 'purple', 'lime']
functions = [
get_center_of_mass,
get_representative_point,
get_skeleton_center_of_mass,
get_furthest_point_from_edge,
get_furthest_point_from_edge_cv2,
get_center_of_half_area_line
]
plt.figure(figsize=(2*cols, 2*rows, ))
for i in range(rows*cols):
cnt = get_random_contour()
mask = draw_contour_on_mask((H,W), cnt)
plt.subplot(cols,rows, i+1)
plt.imshow(mask, cmap='gray')
for c, m, f in zip(colors, markers, functions):
l = f.__name__
cx, cy = f(cnt)
plt.scatter(cx, cy, c=c, s=100, label=l, marker=m, alpha=0.7)
plt.tight_layout()
plt.legend(loc=3)
plt.show()
Here’s how the algorithms, run on 100 random examples, compare in speed:
N_EXAMPLES = 100
cnts = [get_random_contour() for _ in range(N_EXAMPLES)]
for fn in functions:
print(fn.__name__+":")
%time _ = [fn(cnt) for cnt in cnts]
print("~ "*40)
get_center_of_mass:
CPU times: user 2.35 ms, sys: 777 µs, total: 3.13 ms
Wall time: 1.91 ms
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
get_representative_point:
CPU times: user 15.7 ms, sys: 0 ns, total: 15.7 ms
Wall time: 14.8 ms
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
get_skeleton_center_of_mass:
CPU times: user 6.52 s, sys: 104 ms, total: 6.62 s
Wall time: 6.62 s
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
get_furthest_point_from_edge:
CPU times: user 413 ms, sys: 63 µs, total: 413 ms
Wall time: 413 ms
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
get_furthest_point_from_edge_cv2:
CPU times: user 47.8 ms, sys: 0 ns, total: 47.8 ms
Wall time: 47.8 ms
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
get_center_of_half_area_line:
CPU times: user 1.66 s, sys: 0 ns, total: 1.66 s
Wall time: 1.66 s
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~