Вокруг формулы Пика
Уровень сложности
Средний
Время на прочтение
2 мин
Количество просмотров 2.3K
Как найти площадь произвольного многоугольника с вершинами в узлах клетчатой бумаги?
В простых ситуациях его можно разбить на треугольники (рис. 1а) или, наоборот, достроить до прямоугольника (рис. 1б). Но как быть в общем случае? Посмотрите, скажем, на рисунок 1в.
Оказывается, достаточно подсчитать числовершин внутри многоугольника и число
на его границе — тогда его площадь
будет равна
Это формула называется формулой Пика в честь австрийского математика Георга Пика (1859–1942), открывшего её в 1899 году. Так, для многоугольника на рисунке 1в имеем
,
, поэтому
Формула выглядит удивительно просто. Интересно, столь же просто её доказать?
Этап 1: ШАГ ИНДУКЦИИ. Предположим, что многоугольник разбит диагональю на два, для которых формула доказана. Тогда несложно показать, что она верна и для.
Этап 2: ТРИАНГУЛЯЦИЯ. Многократно проводя внутренние диагонали, разобьём наш многоугольник на элементарные треугольники (не содержащие узлов ни на границе, ни внутри, кроме вершин). Для такого треугольникаи
поэтому площадь должна быть равна
Этап 3: БАЗА ИНДУКЦИИ. Остаётся доказать, что площадь элементарного треугольника равнаМы приведём важное и красивое рассуждение.
Пусть треугольник имеет вершины и
Достроим его до параллелограмма, добавив вершину
и замостим его копиями всю плоскость (рис. 2).
Элементарность нашего треугольника равносильна тому, что любой узелможно получить из узла
целочисленными сдвигами сторон
и
Иными словами, для любых целых
и
найдутся целые
и
такие, что
Неожиданно, геометрическая задача свелась к чисто алгебраической — системе линейных уравнений. Её решение даётся формулами Крамера
Хорошо известно, что определительпо модулю равен площади параллелограмма, построенного на векторах
и
поэтому нам надо доказать, что
Приимеем
а при
Так как
всегда должны быть целыми, то
кратны
откуда
кратно
, что возможно, лишь при
Формула Пика доказана.
В заключение сделаем несколько замечаний.
-
Приведённое рассуждение с замещением плоскости на школьном языке иллюстрирует важные идеи высшей алгебры — описание базисов свободной абелевой группы
и группы её автоморфизмов:
-
Последний факт можно обобщить на высшие размерности:
-
А вот формула Пика неверна уже в трёхмерном пространстве: объём многогранника с целыми вершинами не выражается через количества вершин внутри, на гранях и рёбрах.
-
Вместе с тем существуют варианты обобщения формулы Пика для некоторых классов целочисленных многомерных многогранников (например, с центрально-симметричными гранями).
Автор: Андрей Канунников, к. ф.-м. н., мехмат МГУ, преподаватель ШАД Хелпер
Площадь по заданным координатам. Как найти (вычислить) площадь фигуры (треугольник, четырехугольник, трапеция, многоугольник и др.) по координатам? Какие есть формулы и методы, позволяющие находить площадь через координаты? бонус за лучший ответ (выдан): 5 кредитов Для вычисления площади простого многоугольника с любым количеством вершин, представленных в виде списка координат, при последовательном обходе которых, не образуются пересекающиеся линии, применяется формула Гаусса, иначе называемая «формулой землемера», «формулой геодезиста», «формулой шнурования», «алгоритмом шнурования», а так же «методом треугольников». Суть метода заключается в построении треугольников, состоящих из сторон многоугольника и лучей проведённых из начала координат к вершинам многоугольника, и сложении площадей треугольников, включающих внутреннюю часть многоугольника с вычитанием площадей треугольников, расположенных снаружи. Площадь, вычисленная по приведенной формуле, будет иметь отрицательное значение при обходе фигуры по часовой стрелке и положительное при обходе против часовой стрелки. Фигура многоугольника может иметь произвольную геометрию. Например: Список координат многоугольника представлен в виде массива: (x1, y1), (x2, y2), (x3, y3),…(xn, yn). Для многоугольника на первом рисунке он задан точками: (3,4), (5,11), (12,8), (9,5), (5,6). Его площадь будет равна: Существует также метод трапеций, основанный на сложении и вычитании площадей трапеций, образованных каждой из сторон многоугольника, её проекцией на ось абсциссы и перпендикулярами, опущенных из вершин на абсциссу. При обходе вершин по часовой стрелке учитывается величина координаты вершин. Если первая вершина меньше второй, то площадь трапеции прибавляется, если нет, то отнимается. Для многоугольника ABCDE на левом нижнем рисунке существует 5 трапеций : ABJH, CBJF, CDIF, EDIG и EAHG. Так как X1<X2, X3<X4 и X5<X1, то площади трапеций ABJH, CDIF и EAHG складываются, а X3>X4 и X4<X5, следовательно, площади трапеций CBJF и EDIG вычитаются: S = S(ABJH) – S(CBJF) + S(CDIF) – S(EDIG) + S(EAHG) Площади трапеций рассчитываются по формуле; Sтрапеции = 1/2 *((a+b))*h, где a, b – основания трапеции, h – высота трапеции. Значения a, b и h вычисляются по координатам. В декартовых координатах круг может быть представлен двумя точками: центр А и любая точка В, лежащая на окружности. Для расчета площади круга необходимо вычислить его радиус по формуле: автор вопроса выбрал этот ответ лучшим Ксарфакс 5 лет назад Площадь фигуры по координатам вершинЕсли известны координаты всех вершин, то площадь заданной геометрической фигуры (треугольника, прямоугольника, трапеции, ромба и т.д) можно найти по стандартным формулам. Но предварительно нужно найти длину сторон, диагоналей и т.п. (всё зависит от фигуры) с помощью формулы нахождения длины отрезка по заданным координатам. Эта формула выглядит следующим образом: Здесь: AB — отрезок, точка A имеет координаты (x1, y1), точка B имеет координаты (x2, y2). Рассмотрим несколько примеров. 1) Треугольник ABC имеет координаты A(2,3); B(6,7); C(5,0). Его площадь можно найти по формуле Герона: Здесь: S — площадь треугольника, a, b, c — стороны, p — полупериметр, который равен половине суммы сторон a, b и c. Найдём, чему равны стороны треугольника по формуле нахождения длины отрезка по координатам: AB = √(4² + 4²) = √32 ≈ 5,66. AC = √(3² + (-3)²) = √18 ≈ 4,24. BC = √((-1)² + (-7)²) = √50 ≈ 7,07. Полупериметр треугольника будет равен (5,66 + 4,24 + 7,07) / 2 ≈ 16,97 / 2 ≈ 8,49. Отсюда площадь треугольника ABC ≈ √(8,49 * 2,83 * 4,25 * 1,42) ≈ √145 ≈ 12,04. 2) Ромб ABCD имеет координаты A(1,2); B(3,4); C(5,2); D(3,0). Площадь можно найти через диагонали: Здесь: S — площадь ромба, d1 и d2 — диагонали. Таким образом, нам нужно найти диагонали AC и BD. AC = √(4² + 0) = √16 = 4. BD = √(0 + (-4)²) = √16 = 4. Отсюда площадь ромба ABCD = 0,5 * 4 * 4 = 8. 3) Трапеция ABCD имеет координаты A(1,1); B(3,4); C(5,4); D(6,1). Стандартная формула площади трапеции такая: Здесь: S — площадь трапеции, a и b — основания, h — высота. Высота трапеции (пусть это будет BE) — это перпендикуляр, который был опущен из вершины трапеции (из точки B) на её основание (в нашем случае это AD). Определим координаты её отрезка:
Высота трапеции BE = √(0 + (-3)²) = √9 = 3. Теперь посчитаем длину оснований: BC = √(2² + 0) = √4 = 2. AD = √(5² + 0) = √25 = 5. Таким образом, площадь трапеции ABCD = 3 * 0,5 * (2 + 5) = 10,5. Степан-16 6 лет назад Первоначально нужно вычислить длины сторон. В этом здесь будет основная задача. Получив стороны, вычисляем площади по стандартным формулам. Самый простой случай — для прямоугольника, когда его стороны параллельны осям координат. Тогда одна сторона будет равна разнице абсцисс, вторая ординат. Треугольник. Допустим, основание параллельно оси абсцисс. Вычисляем его длину, как разницу абсцисс. Далее нужно найти высоту. Она будет равна разнице ординат третьей вершины и ординаты любой из вершин основания. Затем — площадь по формуле: половина произведения основания на высоту. И т.д. Если же стороны фигуры не параллельны осям, то находить длины сторон придется уже более сложными расчетами. Допустим, прямоугольник. Первую сторону будем искать, как если бы она была гипотенузой в составе прямоугольного треугольника. Каждая сторона будет равна квадратному корню из суммы квадратов абсцисс и ординат концов отрезков стороны. Так и для любой фигуры. Вначале определяем длины сторон как гипотенузу треугольника. После чего применяем стандартные формулы площадей. Эления 3 года назад Рассчитать площадь какой угодно геометрической фигуры, зная координаты, не составляет сложности. Каждая из точек, соответствующая вершинам искомой фигуры, будь это треугольник, четырех- или многоугольник, имеет определенную координату, а значит у нее есть значение, через которое можно рассчитать площадь. Координаты, как найти на графике, чтобы узнать площадь фигуры? Проецируем на оси абсцисс и ординат прямые, проведя перпендикуляр из каждой точки. Полученные значения будут исходной величиной. Каждая из сторон фигуры — это разница двух точек на горизонтальную и вертикальную оси. Разница между значениями означает длину стороны фигуры. А зная все стороны и их значение, по формуле находим площадь. Пример 1. Ищем площадь треугольника. Мы видим два отрезка зеленого цвета AB и BC, которые образуют стороны равнобедренного треугольника, а основание есть отрезок на оси абсцисс AC. Даны значения: AC основание в промежутке от «-4» до «+4», то есть длина основания равна восьми. Будет лучше, если посчитать площадь этого треугольника, как сумму из образовавших его двух треугольников, которые являются прямыми, ABO и BOC, совпадающие прямым углом с координатой «0» на графике. Известна длина каждй из сторон, образующих прямой угол (AO или OC) х = 4 — 0 = 4 и y = 2 — 0 = 2 (BO). Зная длину двух сторон, образующих прямой угол (AO и BO), находим длину основания (AB или BC). Тогда уже знаем все длины каждой из сторон обоих прямых треугольников. Остается только найти площадь по формуле: Зная площадь каждого из прямых треугольников, умножаем на два, получаем сумму заштрихованного треугольника на графике ABC. И еще математически можно записать решение следующим образом, исходя из того, что имеем изначально следующую систему неравенств: Пример 2. Пример 3. Есть парабола, ищем площадь фигуры, ограниченную кривой параболы. Чтобы посчитать, используем интеграл. Бекки Шарп 3 года назад Рассмотрим простой случай, где буквально на пальцах можно посчитать площадь через обычную формулу, а затем применим к этой задаче формулу Гаусса. У нас есть трапеция, у которой известны координаты вершин. (3:2) (5:2) (9:6) (6:6). Мы знаем, что площадь трапеции равна сумме оснований, деленной на 2 и умноженной на высоту. S = (a+b)/2 х h Считаем площадь: S = (3+2):2х4 = 10. Ответ — 10. А теперь по теореме Гаусса. Не смотря на страшный вид, формула очень простая. В квадратных скобках мы перемножаем абсциссу первой точки с ординатой второй, прибавляем абсциссу второй, умноженную на ординату третьей и так идем по кругу фигуры. Далее вычитаем ординату первой умноженную на абсциссу второй и т.д. В квадратных скобках у нас может получиться отрицательное число. S= 0,5 х [3х6+6х6+9х2+5х2 — 2х6-6х9-6х5-2х3] = 10 Таким образом можно найти площадь любой сложной фигуры, зная ее координаты. dydySacha 6 лет назад Можно взять милиметровку и нанести точки с заданными координатами, согласно осей абсцис и ординат. Соединить эти точки между собой и замерить длины образовавшихся сторон, а с помощью формулы по определению площади образовавшейся фигуры узнать её значение подставив данные в эту формулу. Алиса в Стране 3 года назад Существует специальная формула, называемая формулой Гаусса, она и позволит нам определить искомую площадь по координатам. Вот как эта формула выглядит: Формула выглядит немного устрашающе, но давайте попробуем в ней разобраться. У нас есть многоугольник и есть его координаты, подсчитать n — количество сторон многоугольника несложно, а дальше просто нужно подставлять значения в эту формулу, нужно только быть внимательным и не перепутать какие координаты куда надо писать. Давайте теперь приведем пример нахождения такой площади через формулу Гаусса. Допустим, у нас есть вот такой пятиугольник: Координаты его пяти вершин, как мы видим: (3, 4), (5, 11), (12, 8), (9, 5), (5, 6). Теперь нам остается только очень внимательно подставить эти координаты в нашу формулу, n = 5, координаты известны, вот что у нас получится: Когда разбираешься в этой формуле, понимаешь, насколько она проста и даже легко запоминается, несмотря на то, что сначала кажется очень сложной. duselldorf 5 лет назад Для вычисления площади геометрической фигуры по координатам ее вершин, нужно воспользоваться формулой Гаусса, иногда ее называют формулой землемера или формулой геодезиста, так как она применяется геодезистами для определения площади земельного участка, например, при межевании: где А — площадь многоугольника с заданными координатам его вершин, n — количество сторон многоугольника, (xi, yi) — координаты вершин многоугольника, i = 1, 2,…, n — номер вершины многоугольника. Бархатные лапки 3 года назад Находим площадь вот такого несложного четырехугольника. Координаты его вершин нам известны. Применяем формулу Гаусса, которая выглядит так: S (площадь) = 0,5 [6х4 +9х7 + 10х6 + 7х3 — 3х9 — 4х10 — 7х7 — 6х6] = 8 (квадратных единиц) Как видим если применять при решении формулу Гаусса то решить такую задачку несложно. Не вижу здесь серьезных проблем. Мы, как я понял, имеем готовые точки координат, которые нужно проставить на координатной плоскости. Далее, соединяя эти точки, получаем фигуру, как в примере вопроса — квадрат, треугольник и т.п. Теперь вычисляем площадь любой из полученных фигур по формуле ей соответствующей. Знаете ответ? |
Калькулятор ниже был написан для решения частной задачи расчета площади выпуклого четырехугольника по координатам его вершин. Он только обобщает эту задачу до задачи расчета площади любого выпуклого многоугольника вообще. Собственно, на сайте уже был подобный калькулятор Площадь многоугольника, но там требовалось вводить длины сторон и диагоналей, а это несколько труднее, чем вводить только координаты вершин.
Принцип работы остается таким же — многоугольник разбивается на непересекающиеся треугольники, подсчитывается площадь всех треугольников (это легко сделать зная длины всех трех сторон — Расчет площади треугольника по формуле Герона), затем площади суммируются. Основная проблема была в том, чтобы сделать его устойчивым к ситуации, когда точки вводят не по порядку. Предположим, сначала вводят первые четыре точки получая фигуру на рисунке ниже
При добавлении следующей точки, например, так, как на следующем рисунке
должен уже получиться многоугольник ADCBE, а не ABCDE, разбитый на треугольники ADC, ACB и ABE, соответственно.
Чтобы получить правильный многоугольник, фактически требуется получить оболочку введенных точек. Для этого калькулятор использует алгоритм Джарвиса (или алгоритм обхода Джарвиса, или алгоритм заворачивания подарка), который определяет последовательность элементов множества, образующих выпуклую оболочку для этого множества. Метод можно представить как обтягивание верёвкой множества вбитых в доску гвоздей.
Алгоритм работает за время , где n — общее число точек на плоскости, h — число точек в выпуклой оболочке. Для выпуклого многоугольник соответственно будет
. Не самый оптимальный алгоритм, зато очень простой, и для этого калькулятора вполне производительный.
Как пользоваться калькулятором: начинаете вводить координаты точек выпуклого многоугольника. Начиная с трех точек алгоритм Джарвиса будет стоить обтягивающий контур, затем контур будет разбиваться треугольники и подсчитываться общая площадь. Для справки также будут выводиться площади всех треугольников.
Вычисление площади выпуклого многоугольника по координатам вершин на плоскости
Точки многоугольника
Точка | X | Y | ||
---|---|---|---|---|
Точность вычисления
Знаков после запятой: 2
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
Просмотров 10.5к. Обновлено 23 ноября 2020
Урок из серии «Геометрические алгоритмы»
Здравствуйте, дорогой читатель.
Решения многих задач вычислительной геометрии основывается на нахождении площади многоугольника. На этом уроке мы выведем формулу для вычисления площади многоугольника через координаты его вершин, напишем функцию для вычисления этой площади.
Задача. Вычислить площадь многоугольника, заданного координатами своих вершин, в порядке их обхода по часовой стрелке.
Сведения из вычислительной геометрии
Для вывода формулы площади многоугольника нам понадобятся сведения из вычислительной геометрии, а именно, понятие ориентированной площади треугольника.
Ориентированная площадь треугольника – это обычная площадь, снабженная знаком. Знак ориентированной площади треугольника АВС такой же, как у ориентированного угла между векторами и
. То есть ее знак зависит от порядка перечисления вершин.
Рис1
На рис. 1 треугольник АВС – прямоугольный. Его ориентированная площадь равна (она больше нуля, так как пара
,
ориентирована положительно). Эту же величину можно вычислить другим способом.
Пусть О – произвольная точка плоскости. На нашем рисунке площадь треугольника ABC получится, если из площади треугольника OBC вычесть площади OAB и OCA. Таким образом, нужно просто сложить ориентированные площади треугольников OAB, OBC и OCA. Это правило работает при любом выборе точки О.
Точно так же для вычисления площади любого многоугольника нужно сложить ориентированные площади треугольников
Рис. 2
В сумме получится площадь многоугольника, взятая со знаком плюс, если при обходе ломаной многоугольника находится слева (обход границы против часовой стрелки), и со знаком минус, если он находится справа (обход по часовой стрелке).
Итак, вычисление площади многоугольника свелось к нахождению площади треугольника. Посмотрим, как выразить ее в координатах.
Векторное произведение двух векторов на плоскости есть площадь параллелограмма, построенного на этих векторах.
Векторное произведение, выраженное через координаты векторов:
Площадь треугольника будет равна половине этой площади:
В качестве точки О удобно взять начало координат, тогда координаты векторов, на основании которых вычисляются ориентированные площади, совпадут с координатами точек.
Пусть (х1, y1), (x2, у2), …, (хN,уN) —координаты вершин заданного многоугольника в порядке обхода по или против часовой стрелки. Тогда его ориентированная площадь S будет равна:
Это и есть наша рабочая формула, она используется в нашей программе.
Если координаты вершин были заданы в порядке обхода против часовой стрелки, то число S,вычисленное по этой формуле, получится положительным. В противном случае оно будет отрицательным, и для получения обычной геометрической площади нам необходимо взять его абсолютное значение.
Итак, рассмотрим программу для нахождения площади многоугольника, заданного координатами вершин.
Program geom6; Const n_max=200; {максимальное количество точек+1} type b=record x,y:real; end; myArray= array[1..n_max] of b; var input:text; A:myArray; s:real; i,n:integer;
procedure ZapMas(var n:integer; var A:myArray); {Заполнение массива } begin assign(input,'input.pas'); reset(input); readln(input, n); for i:=1 to n do read(input, a[i].x,a[i].y); close(input); end;
function Square (A:myarray): real; {Вычисление площади многоугольника} var i:integer; S: real; begin a[n+1].x:=a[1].x; a[n+1].y:=a[1].y; s:=0; for i:=1 to n do s := s + (a[i].x*a[i+1].y - a[i].y*a[i+1].x); s:=abs(s/2); Square := S end; {Square} begin {main} Zapmas(n, a); PrintMas(a); S:= Square(a); writeln('S= ',s:6:2); end.
Координаты вершин считывается из файла input.pas., хранятся в массиве А в виде записей с двумя полями. Для удобства обхода многоугольника в массиве вводится n+1 элемент, значение которого равно значению первого элемента массива.
Входные данные:
5
0.6 2.1 1.8 3.6 2.2 2.3 3.6 2.4 3.1 0.5
Выходные данные:
S= 3.91
Мы решили задачу о нахождении площади многоугольника по координатам его вершин. Задачи усложняются. Если у вас есть замечания к этой статье, или пожелания, напишите в комментарии. Буду Вам очень признательна за сотрудничество.
До встречи на следующем уроке.
Загрузить PDF
Загрузить PDF
Очень легко вычислить площадь правильного треугольника (это многоугольник!) и очень непросто сделать это в случае неправильного одиннадцатиугольника (это тоже многоугольник!). Данная статья расскажет вам, как вычислять площадь различных многоугольников.
-
1
Формула для нахождения площади правильного многоугольника: Площадь = 1/2 х периметр х апофема.
- Периметр – сумма сторон многоугольника.
- Апофема – отрезок, соединяющий центр многоугольника и середину любой из его сторон (апофема перпендикулярна стороне).
-
2
Найдите апофему. Она, как правило, дана в условии задачи. Например, дан шестиугольник, апофема которого равна 10√3.
-
3
Найдите периметр. Если периметр не дан в условии задачи, то его можно найти по известной апофеме.
- Шестиугольник можно разбить на 6 равносторонних треугольников. Апофема делит одну сторону пополам, создавая прямоугольный треугольник с углами 30-60-90 градусов.
- В прямоугольном треугольнике сторона, противолежащая углу в 60 градусов, равна x√3; углу в 30 градусов равна «х»; углу 90 градусов равна 2x. Если значение стороны x√3 равно 10√3, то х = 10.
- «х» – это половина длины основания треугольника. Удвойте ее и найдете полную длину основания. В нашем примере основание треугольника равно 20 единицам. В свою очередь основание треугольника есть сторона шестиугольника. Таким образом, периметр шестиугольника равен 20 х 6 = 120.
-
4
Подставьте значения апофемы и периметра в формулу. В нашем примере:
- площадь = 1/2 х 120 х 10√3
- площадь = 60 х 10√3
- площадь = 600√3
-
5
Упростите ответ. Возможно, вам придется записать ответ в виде десятичной дроби (то есть избавиться от корня). С помощью калькулятора найдите √3 и полученное число умножьте на 600: √3 х 600 = 1039,2. Это ваш окончательный ответ.
Реклама
-
1
Найдите площадь треугольника. Формула: Площадь = 1/2 х основание х высота.
- Если вам дан треугольник с основанием 10 и высотой 8, то его площадь = 1/2 х 8 х 10 = 40.
-
2
Найдите площадь квадрата. Чтобы найти площадь квадрата, просто возведите в квадрат длину одной его стороны. Если умножить основание квадрата на его высоту, мы получим тот же ответ, так как основание и высота равны.
- Если сторона квадрата равна 6, то его площадь = 6 х 6 = 36.
-
3
-
4
Найдите площадь трапеции. Формула: Площадь = [(основание1 + основание2) х высота] / 2.
- Например, дана трапеция с основаниями 6 и 8 и высотой 10. Ее площадь = [(6 + 8)•10]/2 = (14 х 10)/2 = 140/2 = 70.
Реклама
-
1
Используйте координаты вершин неправильного многоугольника. Зная координаты вершин, можно определить площадь неправильного многоугольника.
-
2
Сделайте таблицу. Запишите координаты вершин (х,у) (вершины выбирать последовательно в направлении против часовой стрелки). В конце списка еще раз напишите координату первой вершины.
-
3
Умножьте значение координаты «х» первой вершины на значение координаты «у» второй вершины (и так далее). Сложите результаты (в нашем примере сумма равна 82).
-
4
Умножьте значение координаты «у» первый вершины на значение координаты «х» второй вершины (и так далее). Сложите результаты (в нашем примере сумма равна -38).
-
5
Вычтите сумму, полученную в шаге 4, из суммы, полученной в шаге 3. В нашем примере: (82) — (-38) = 120.
-
6
Разделите полученный результат на 2, чтобы найти площадь многоугольника: S=120/2 = 60 (квадратных единиц).
Реклама
Советы
- Если вы записываете координаты вершин в направлении по часовой стрелке, вы получите отрицательную площадь. Таким образом, это можно использовать для описания цикла или последовательности данного набора вершин, формирующих многоугольник.
- Данная формула находит площадь с учетом формы многоугольника. Если многоугольник имеет форму цифры 8, то необходимо из площади с вершинами против часовой стрелки вычесть площадь с вершинами по часовой стрелке.
Реклама
Похожие статьи
Об этой статье
Эту страницу просматривали 440 012 раз.