Площади многоугольников и тающий лёд

Григорий Мерзон
«Квантик» №9, 2018

Формула Пика

Как найти площадь многоугольника на клетчатой бумаге? Можно подсчитать число клеток, которые полностью накрыты фигурой, и ещё как-то учесть клетки, накрытые фигурой частично, — скажем, прибавить половину от числа этих клеток. И сказать, что площадь фигуры (в клеточках) приблизительно равна полученной сумме.

Расчет площади многоугольника («Квантик» №9, 2018)

А можно вместо клеток, полностью или частично накрытых многоугольником, считать узлы сетки (вершины клеток) строго внутри многоугольника или на его границе.

Расчет площади многоугольника («Квантик» №9, 2018)

Действительно, вокруг каждого узла сетки можно нарисовать по единичному квадратику. И если узел лежит на границе многоугольника, то этот квадратик накрыт многоугольником только частично. А если узел лежит внутри, то обычно и квадратик накрыт многоугольником полностью... впрочем, иногда всё же не полностью — но мы и считаем площадь только приближённо.

Но чудесным образом последний рецепт всегда даёт почти правильный ответ! А именно, верна Формула Пика. Площадь S многоугольника с вершинами в узлах сетки можно найти по формуле

S = i + b 2 1 ,

где i — число узлов сетки строго внутри многоугольника, b — число узлов сетки на его границе.

Подчеркнём, что это уже не приближённая, а точная формула!

Расчет площади многоугольника («Квантик» №9, 2018)

Интересно, что хотя длины сторон у многоугольников обычно совершенно не целые, формула Пика гарантирует, что площадь всегда получится целой или полуцелой.

Рисунок Марии Усеиновой («Квантик» №9, 2018)

Тающий лёд

Формула Пика известна с XIX века, и с тех пор у неё появилось много доказательств, но большинство из них не такие уж простые. Мы обсудим предложенный в 1997 году швейцарским математиком Кристианом Блаттером мысленный эксперимент с тающим льдом, который сразу объясняет формулу Пика.

Расчет площади многоугольника («Квантик» №9, 2018)

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

Построим вокруг каждого столбика забор в виде единичного квадратика, после чего растопим весь лёд (во всех квадратиках вода растекается одинаково и симметрично относительно центра своего квадратика). Вся клетчатая плоскость будет равномерно залита водой, и в каждой ячейке площади 1 будет по 1 грамму воды. То есть количество воды в нашем многоугольнике (в граммах) будет равно его площади (в клетках).

Расчет площади многоугольника («Квантик» №9, 2018)

С другой стороны, задумаемся, откуда эта вода попала в наш многоугольник. Посмотрим на какую-нибудь конкретную сторону многоугольника. Если через неё внутрь многоугольника втекла вода из какого-то столбика, то точно столько же воды из симметричного столбика (симметричного относительно середины этой стороны) через неё из многоугольника вытекло.

Расчет площади многоугольника («Квантик» №9, 2018)

То есть внутри многоугольника ровно столько воды, сколько в нём было льда! А сколько в нём было льда? Каждый из узлов сетки внутри многоугольника даёт вклад 1 грамм, общий вес получается граммов. Узлы на сторонах обычно дают по  1 2  грамма, но только если это не вершина, для вершины этот вес меньше — так что и общий вес узлов на границе получается не  b 2  граммов, а меньше.

Расчет площади многоугольника («Квантик» №9, 2018)

Насколько меньше? Продлим немного каждую сторону, обходя многоугольник вдоль сторон по часовой стрелке. На рисунке ниже красная часть дополняет каждую из синих частей до половины круга. Но красные части в сумме дают ровно один круг! Ведь, обходя многоугольник по контуру, мы в каждой вершине поворачиваемся на угол, соответствующий красной части, пока не вернёмся в исходную точку, сделав как раз полный оборот.

Расчет площади многоугольника («Квантик» №9, 2018)

То есть суммарный вес льда внутри многоугольника равен i + b 2 1 , и мы получили формулу Пика!

Упражнение

В рассуждении выше мы рисовали выпуклый многоугольник. А изменится ли что-то, если многоугольник станет невыпуклым? А если рассматривать «многоугольники с дырками»?

Художник Мария Усеинова


1
Показать комментарии (1)
Свернуть комментарии (1)

  • impfromliga  | 06.02.2026 | 12:10 Ответить
    есть очень интересное подозрение, что скомбинировав этот метод с некоторым алгоритмом "сбора веса" узлов регулярной сетки в соответствии с построением изолинии, можно очень точно (если не вплоть до погрешностей плавающей арифметики) считать площадь многогранников и не лежащих на регулярных узлах... Или я как обычно изобретаю что уже есть?

    разве что сетка должна быть не меньше самой маленькой стороны, так что вычисление ситуациий когда есть большой разброс длинн сторон нужно дооптимизировать кластеризацией порядков этих длин, с фильтрацией через отделение наименьших для их аналитического обсчета, - отдельно от основной массы по крупной регулярной сетке (проходы кластеризации-отделения для сложных случаев можно повторить)
    Ответить
Написать комментарий
Элементы

© 2005–2026 «Элементы»