Изменения

Перейти к: навигация, поиск

Триангуляция Делоне на сфере

6666 байт добавлено, 19:19, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{wasted}}
== Определения ==
{{Определение
{{Определение
|definition=
'''Критерий Делоне (частный случай для сферы):''' при построении плоскости через три точки, которые образуют треугольник, все остальные точки лежат ниже не выше этой плоскости.
}}
{{Лемма
|about=1
|id=1|statement= Сечение сферы плоскостью есть кругокружность, а основание перпендикуляра, проведенного из центра шара к пересекаемой плоскости, есть центр кругаокружности, полученного полученной в сечении.
|proof=
[[Файл:drawing.png|400px|thumb|right|]]
{{Лемма
|about=2
|id=2
|statement= Гранями выпуклой оболочки будут выпуклые многоугольники
|proof=
Если существует точка ниже нашей плоскости, то "внутри" выпуклой оболочки содержится точка, что некорректно. Противоречие.
Отсюда, все точки лежат на плоскости, что в нашем случае эквивалентно тому, что они лежат на одной окружности, значит любая триангуляция нашего треуголника многоугольника не нарушит глобальный критерий Делоне(ни в одной окружности, построенной на появившихся в ходе триангуляции треугольников, не будет содержаться точек).
}}
===Время работы===
Мы можем построить выпуклую оболочку за <tex> \mathcal{O}(N \log(N)) </tex>, где <tex>N</tex> {{---}} количество точек.
Удалить треугольники мы можем за <tex>\mathcal{O}(N)</tex>.Триангулиравать грани мы можем за <tex>\mathcal{O}(N)</tex> как было показано выше.
В результате получаем <tex> \mathcal{O}(N \log(N)) </tex>,
}}
{{Утверждение
|id=krit_dol1
|statement=Пусть имеются два треугольника на сфере: <tex>ABC</tex> и <tex>ABD</tex> и точка <tex>E</tex>, находящаяся над плоскостью <tex>ABC</tex>. Точка <tex>D</tex> находится ниже плоскости <tex>ABC</tex>. Сечение построенной на ребре <tex>AB</tex> и точке <tex>O</tex> делит сферу на две полусферы. Если полусфера, не содержащяя треугольник <tex>ABC</tex>, содержит точки <tex>E</tex> и <tex>D</tex>, то точка <tex>E</tex> лежит надо плоскостью <tex>ABD</tex>.
|proof=
Факт очевиден.
}}
{{Утверждение
|id=krit_dol1
[[Файл:dol1.png|400px|thumb|right|]]
Из глобального в локальный очевидно.
Из локального в глобальный:
В силу того, что локальный критерий выполняется, эта точка не принадлежит соседним треугольникам, в частности смежному треугольнику <tex>ABD</tex> по ребру <tex>AB</tex>
За <tex>AB</tex> мы обозначили ребро, из которого видна точка <tex>E</tex>, т.е такоеребро, что если провести сечение через точки <tex>A</tex>, <tex>B</tex> и <tex>O</tex> (центр окружности), то точка <tex>E</tex> содержится в полусфере, не содержащей треугольник <tex>ABC</tex>.
Так как точка <tex>E</tex> лежит над плоскостью <tex>ABC</tex>, а точка <tex>D</tex> под плоскостью <tex>ABC</tex>, то точка <tex>E</tex> лежит над плоскостью <tex>ABD</tex>.(с учетом того, что они лежат в одной полусфере, ребро AB общее и отделяет треугольник <tex>ABC</tex> от полусферы) (по утверждению выше)
Посмотрим, существует ли у треугольника <tex>ABD</tex> смежный треугольник, содержащий вершину <tex>E</tex>:
#Если он существует, то локальный критерий для треугольника <tex>ADE</tex> не выполняется. Противоречие.#Если он не существует, то точка <tex>E</tex> так же будет лежать "над" каким-то смежным с <tex>ABD</tex> треугольником(аналогично процессу с треугольником , так как для треугольника <tex>ABCABD</tex>). Повторим операцию от треугольника будут выполняться те же условия, что и для <tex>ABDABC</tex>. Так как количество треугольников конечно Перейдем к такому треугольнику и повторим шаг. Заметим, что наш процесс есть локализация. Мы пустили луч исходной полусферету сторону, где содержалась точка видим точку <tex>E</tex>), процесс сойдется(на каждом шаге выбор полусферы будет уменьшать количество треугольников из предыдущего множества)исходного треугольника и идём вдоль него. Так как точка E принадлежит триангуляции, то на какомВ какой-то шаге итерации (пусть это будет треугольник момент мы окажемся рядом с треугольником <tex>XYZ</tex>) соседний треугольник будет содержать точку , для которого точка E, которая лежит выше плоскости <tex>XYZ</tex>, но это противоречит локальном критериюпостроенной на его трех точках, и в тоже время вершина E содержится в соседнем треугольнике, что нарушает локальный критерий. Противоречие. Значит глобальный критерий Делоне выполняется.
}}
[[Файл:dol2.png|right]]
Из глобального в локальный очевидно, докажем обратно.
Предположим противное, то есть найдётся такая плоскость, что вершины треугольников при ребре <tex>AB</tex> лежат под ней, но существует какая-то вершина <tex>F</tex> над ней. Проведём окружность с центром в сфере через <tex>AB</tex> и выберем треугольник лежащий в одной полусфере с точкой <tex>F</tex>, назовём его <tex>ABC</tex>. Точка <tex>E</tex> лежит над плоскостью Для треугольника <tex>ABC</tex> => <tex>F</tex> лежит внутри окружности около <tex>ABC</tex>. Возьмем треугольника при ребрене выполняется глобальный критерий Делоне, в чьем сегменте оказалась точка <tex>F</tex> поэтому воспользуемся алгоритмом из утверждения "Глобальный и локальный критерии Делоне равносильны" и назовем его найдем треугольник для которого не будет выполняться локальный критерий Делоне <tex>ABC\Rightarrow</tex>для одного из ребер найденного треугольника не выполняется локальный критерий Делоне. Если не существует смежный с ним треугольник при вершине <tex>F</tex>, то повторим итерацию!!!Следовательно, иначе противоречие с локальным критерием глобальный критерий Делонедля ребра выполняется.
}}
{{Утверждение
[[Файл:dol3.png|400px|thumb|right|]]
Из треугольника в ребра: если для каждого треугольника выполнен критерий, то для каждого ребра можно рассматривать плоскость при любом треугольнике при ребре.
 Обратно: Рассмотрим треугольник <tex>ABC</tex>, для каждого из ребра можно провести плоскость и они , такую что все точки будут лежать не выше её. Три плоскости образуют трехмерный угол, снаружи которого нет точек(снаружи == выше каждой плоскости при ребре). В пересечении угла и плосокости плоскости <tex>ABC</tex> образуется тетраэдр. Если в нем нет точек, значит точек нет и над плоскостью треугольника (точек снаружи тетраэдра нету), значит глобальный критерий выполняется. Проверим это. Пусть в нем есть точки, то тогда эти точки есть оказались внутри треугольника, тогда это не триангуляция => точек в тетраэдре нет => плоскостью <tex>ABC</tex> можно отделить пространство с точками => выполняется глобальный критерий.
}}
 
Будем называть '''хорошими''' те рёбра, для которых выполняется локальный критерий Делоне.
{{Лемма
{{Лемма
|about=6
|id=6
|statement=
Флипами можно достичь хорошей триангуляции за конечное время.
|proof=
[[Файл:Lemma7.jpg|right||Точка <tex>P</tex> вставлена в треугольник]]
Пусть мы вставляем точку <tex>P</tex>. Предположим, она была вставлена в треугольник <tex>ABC</tex> не на ребро. Рассмотрим любое из рёбер — пусть это будет ребро <tex>PC</tex>. Тогда проведем через точки <tex>A</tex>, <tex>B</tex>, <tex>C</tex> плоскость <tex>\alpha</tex>, а так же проведем касательную плоскость <tex>\beta</tex> к сфере через точку <tex>C</tex>. Начнем уменьшать между этими плоскостями угол, двигая вращая <tex>\alpha</tex> к <tex>\beta</tex>вокруг их линии пересечения. В какой-то момент <tex>\alpha</tex> пересечет точку <tex>P</tex>, а тогда мы предоставили плоскость, от которой все точки триангуляции находятся по одну сторону, так как изначально выше <tex>\alpha</tex> была только точка <tex>P</tex>, а значит, ребро <tex>PC</tex> удовлетворяет глобальному критерию Делоне. Аналогично для ребер <tex>PA</tex> и <tex>PB</tex>.
Случай, когда точка вставляется на ребро, рассматривается аналогично.
}}
 
{{Утверждение
|id=trianglepossession
|statement=Пусть даны точки <tex>P</tex>, <tex>A</tex>, <tex>B</tex>, <tex>C</tex> на сфере с центром <tex>O</tex>, тогда <tex>P</tex> принадлежит треугольнику <tex>ABC</tex>, тогда и только тогда, когда поворот <tex>P</tex> относительно плоскостей <tex>AOB</tex>, <tex>BOC</tex>, <tex>COA</tex> одинаковый.
}}
====Проверка местоположения точки относительно окружности описанной около треугольника====
[[Файл:1st pred dol ph.png|right]]
 
Рассмотрим <tex> \triangle ABC </tex> и некоторую точку <tex> D </tex>, все точки лежат на сфере. Задача состоит в том чтобы проверить, где лежит точка <tex> D </tex> относительно окружности описанной около <tex> \triangle ABC </tex>. Заметим, что 3 точки задают плоскость, которая пересекает сферу, образует окружность описанную около <tex> \triangle ABC </tex> и все точки на сфере, что лежат внутри окружности будут находится над плоскостью. Переформулируем задачу, мы будем искать положение точки <tex> D </tex> относительно плоскости <tex> \triangle ABС </tex>. Заметим, что если угол между нормалью <tex> \triangle ABC </tex> и вектором <tex> AD < 90 </tex>, то точка лежит над плоскостью, если <tex> = 90 </tex>, то на плоскости, а если <tex> > 90 </tex>, то снизу. Это означает, найдя скалярное произведение этих векторов мы определим положение точки относительно описанной окружности. Т к нам важен только знак скалярного произведения, то <tex> \vec{n}_{ABC} </tex> можно не нормировать.
 
<tex> \vec{n}_{ABC} = (B - A) \times (C - A) </tex>
 
<tex> k = \vec{n}_{ABC} \cdot (D - A) = ((B - A),(C - A),(D - A)) = \begin{vmatrix} B - A \\ C - A \\ D - A \end{vmatrix} </tex>
<tex> = \begin{vmatrix} B & 1 \\ C & 1 \\ D & 1 \\ A & 1 \end{vmatrix} = - \begin{vmatrix} A & 1 \\ B & 1 \\ C & 1 \\ D & 1 \end{vmatrix} </tex>
===Вставка точки===
В обоих случаях для удобства реализации сначала добавим к триангуляции центр сферы.
В самом начале для удобства реализации добавим к триангуляции центр сферы. Первую добавленную точку на сфере соединим с точкой <tex>O</tex>, вторую точку соединим с предыдущей точкой и центром сферы, третью - со всеми предыдущими. Получим выпуклое тело, далее точки вставляются либо на поверхность этого тела, либо за ее пределами. ==== Вставка точки, лежащей внутри триангуляции на поверхности сферы ====[[Файл:InsertAdd_into.jpg|left||Вставка внутрь треугольника]][[Файл:Add_on_edge.jpg|right||Вставка в треугольникна ребро треугольника]]
Пусть мы добавляем точку <tex>P'</tex>. Для начала локализуемся: поймём, в каком фейсе она лежит (или на каком ребре).
Если же точка лежит на ребре, два смежных с ребром фейса превращаем в два новых, добавляем ещё два, а так же превращаем ребро, на которое вставляется точка, в ребро, которое заканчивается в этой точке, и вставляем три новых.
Итого у нас появилось несколько новых рёбер. Они все хорошие (по [[#newedgeslemma| лемме 7]]), плохими могут оказаться только рёбра, противолежащие вставленной точке. Флипаем рёбра, пока триангуляция не станет хорошей.
==== Вставка точки, лежащей снаружи триангуляции на поверхности сферы ====Пусть мы добавляем точку <tex>P''</tex>[[Файл:Insert. Нам нужно научиться вставлять точку jpg|right||Вставка в треугольник, одной из вершин которого является центр сферы. На самом деле это делается естественным образом. Так как для локализации в треугольнике на поверхности сферы мы использовали предикат поворота относительно плоскости, проходящей через центр сферы и ребро, и вставляемой точки <tex>P``</tex>, то для проверки попадания в треугольник, содержащий центр сферы достаточно проверить, что точка <tex>O</tex> видна из точки <tex>P</tex>, т.е. точка <tex>P</tex> находится по определенную сторону от плоскости, проходящей через ребро и точку <tex>O</tex>, и противоположенная вершина для ребра является центром сферы.]]
Пусть мы добавляем точку <tex>P''</tex>. Нам нужно научиться вставлять точку в треугольник, одной из вершин которого является центр сферы. На самом деле, это теперь получится сделать естественным образом. Так как для определения принадлежности точки треугольнику на поверхности сферы мы смотрим на предикат поворота относительно плоскости, проходящей через центр сферы и ребро, и вставляемой точки <tex>P''</tex>, то для проверки попадания в треугольник, содержащий центр сферы достаточно проверить, что точка <tex>O</tex> видна из точки <tex>P''</tex>, т.е. точка <tex>P''</tex> находится по определенную сторону от плоскости, проходящей через ребро и точку <tex>O</tex>, и противоположенная вершина для ребра является центром сферы.          ==== Время работы ====
{{Лемма
|about=8
|id=8
|statement=
При вставке точки будут флипаться только рёбра, противолежащие вставленной точке.
|id=opposingedgeslemma
|proof=Доказательство по индукции.
[[Файл:Opposit_flip_named.jpg|right|| Флип противолежащего ребра]]
База. По [[#newedgeslemma|лемме 7]] изначально не будут флипаться новые рёбра, инцидентные точке, то есть плохими могут оказаться только рёбра, противолежащие точке.
Переход. Пусть мы вставили точку <tex>P</tex>. Рассмотрим, что произойдёт с противолежащим ей ребром <tex>AC</tex> после флипа, если оно плохое. До вставки точки <tex>P</tex> для триангуляции выполнялся глобальный критерий Делоне, поэтому плоскость <tex>\alpha</tex>, проходящая через точки <tex>A</tex>, <tex>C</tex> и <tex>D</tex> содержала все точки по одну сторону от себя, теперь же по другую сторону еще будет только точка <tex>P</tex>. Проведем плоскость <tex>\beta</tex> через точки <tex>P</tex> и <tex>D</tex> так, что линия пересечения <tex>\alpha</tex> и <tex>\beta</tex> лежала бы в одной плоскости с касательной на сфере через точку <tex>D</tex> к окружности, проходящей через точки <tex>A</tex>, <tex>C</tex> и <tex>D</tex>. Тогда уменьшая угол между этими плоскостями, двигая вращая <tex>\alpha</tex> к <tex>\beta</tex>вокруг линии пересечения плоскостей, найдем момент, когда <tex>\alpha</tex> пересечет точку <tex>P</tex>, а значит, в окружности, отсекаемой в этот момент плоскостью <tex>\alpha</tex> не будет никаких точек. Значит, ребро <tex>PD</tex> хорошее. Значит, после своего флипа ребро <tex>AC</tex> уже не будет флипаться. Так как для рёбер <tex>AP</tex> и <tex>CP</tex> выполняется критерий Делоне, то плохими после флипа могут стать только рёбра <tex>AD</tex> и <tex>CD</tex> — то есть рёбра, противолежащие точке <tex>P</tex>.
}}
{{Лемма
|about=О степени вершины
|id=vertex_st|statement=Математическое ожидание степени вершины после её вставки в триангуляцию Делоне равна равно <tex>O(1)</tex>.
|id=deglemma
|proof=
Предположим, что мы вставляем <tex>i+1</tex>-ую точку из последовательности из <tex>n</tex> точек. Рассмотрим все перестановки из этих <tex>i+1</tex> точек, означающие порядок вставки этих точек. Всего таких перестановок <tex>(i+1)!</tex>. Тогда средняя степень последней вершины среди перестановок равна:
<tex>E(\operatorname{deg}(v_{i+1}))=\frac {\sum_{p=\operatorname{perm}(v_0, v_1, ..., v_i)} \operatorname{deg} (p[i+1])} {(i+1)!}</tex>
Каждая из <tex>i+1</tex> вершин побывает последней ровно <tex>i!</tex> раз, поэтому:
Из-за того, что у нас сфера, и задача триангуляции сведена к задаче построения выпуклой оболочки, то, следовательно, нам перестает быть важным критерий Делоне, нам просто нужно у звездного многоугольника на сфере как-то провести ребра так, чтобы было выпукло.
Представим себе, что вместо того, чтобы удалять точку, мы просто опускаем ее во внутрь до тех пор, покаона пока она не перестает быть видимой в построенном на триангуляции многоугольнике. Предположим, что мы находимся в удаляемой точке, движемся в центр сферы и смотрим только в направлении движения.
{{Лемма
|about=9
|id=9
|statement=
Изначально нам будут видны грани, которые образуются внутри звездного многоугольника.
* рассмотрим <tex>\varepsilon</tex>-окресности центров отрезков.
Если мы точку спустим к центру сферы еще немного, то этот треугольник виден не будет, но <tex>\varepsilon</tex>-окрестности будут видны две какие-то точки. Соединим их отрезком.
Этот отрезок будет виден. Он не будет лежать на плоскосиплоскости. Он не будет лежать под плоскостью. Тогла получается, что он лежит над плоскостью(ближе к краю сферы), значит, многогранник был невыпуклый.
Получается, что грань ушла и у нее только один видимый сосед. Мы можем выделить грань как ухо.
# Общий случай, когда четыре точки в звездном многоугольнике могут лежать на одной окружности рассматривается аналогично.
====Алгоритм удаления точки====
# Уберем точку.
# Сделаем приоритетную очередь, в которой будем хранить пары отрезков, образующие ухо. Для этой очереди будем использовать TODO предикат, сортирующий уши в порядке, в котором они пересекают луч по направлению от удаляемой точки к центру сферы.
# На очередном шаге достаем ухо, отделяем его.
# Добавляем в очередь получившиеся новые уши.
 
=====Предикат=====
[[Файл:sphere_del.png|400px|thumb|right| <tex> ABC</tex> {{---}} грань, <tex> O </tex> {{---}} центр сферы, <tex> P </tex> {{---}} удаляемая точка ]]
При удалении точки, луч, исходящий из центра окружности в точку, пересекает плоскость очередной грани в некоторй точке <tex> T</tex>.
Эту точку можно записать как <tex> T = O + kP </tex>, где <tex> O </tex> {{---}} центр сферы, а <tex> p </tex> {{---}} удаляемая точка.
Зпишем предикат при которм наша точка <tex>kP</tex> лежит на плоскости, проходящей через <tex>ABC</tex>:
<tex>\begin{vmatrix} A & 1 \\ B & 1 \\ C & 1 \\ kP & 1 \end{vmatrix} = 0 </tex>
 
Распишем и разложим по последней строке:
<tex>\begin{vmatrix} A & 1 \\ B & 1 \\ C & 1 \\ kP & 1 \end{vmatrix} =
\begin{vmatrix} a_x & a_y & a_z & 1 \\ b_x & b_y & b_z & 1 \\ c_x & c_y & c_z & 1 \\ kp_x & kp_y & kp_z & 1 \end{vmatrix} = k\begin{vmatrix} A & 1 \\ B & 1 \\ C & 1 \\ P & 0 \end{vmatrix} + \begin{vmatrix} A \\ B \\ C \end{vmatrix} = 0</tex>
 
Тогда условие, по которому мы будем устанавливать порядок в приоритетной очереди будет:
:: <tex>k = - \frac{\begin{vmatrix} A & 1 \\ B & 1 \\ C & 1 \\ P & 0 \end{vmatrix}}{\begin{vmatrix} A \\ B \\ C \end{vmatrix}}</tex>
====Время работы====
{{Лемма
|about=О количестве уровней
|id=10
|statement= Математическое ожидание уровней в локализационной структуре <tex> O(\log{n}) </tex>.
|proof= То же самое, что и для [[Триангуляция Делоне#levelslemma|плоскости]].
|proof= Опять же доказательство копируется с плоскости.
}}
 
====Принадлежность треугольнику====
Пусть даны точки <tex>P</tex>, <tex>A</tex>, <tex>B</tex>, <tex>C</tex> на сфере с центром <tex>O</tex>, тогда <tex>P</tex> принадлежит треугольнику <tex>ABC</tex>, тогда и только тогда, когда поворот <tex>P</tex> относительно плоскостей <tex>AOB</tex>, <tex>BOC</tex>, <tex>COA</tex> одинаковый.
====Алгоритм====
{{Лемма
|about=10
|id=111
|statement=Алгоритм найдет ближайшую точку
|proof=Допустим, что это не так. Это значит, что в внутри окружности с центром в точке <tex>Q</tex>, на которой лежит точка <tex>P</tex>, есть какие-то другие точки. То есть другими словами существует плоскость <tex>\alpha</tex> проходящая через точку <tex>P</tex>, выше которой находятся точка <tex>Q</tex>(так как она центр) и какие-то точки триангуляции.
{{Лемма
|about=11
|id=212
|statement=Среднее число точек, лежащих внутри окружности с центром в точке <tex>Q</tex> и проходящей через точку <tex>V_{i + 1}</tex> равно <tex>O(1)</tex>.
|proof=Рассмотрим точки триангуляции <tex>\{A_i\}</tex>. Для каждой точки <tex> A_i</tex> проведем окружность с центром в ней, проходящую через ближайшую к ней точку. Посчитаем во сколько окружностей в среднем попадет точка какая-то точка <tex>U</tex>.
{{Лемма
|about=12
|id=313|statement=Средняя степень точек на <tex>i</tex> уровне внутри окружности с центром в точке <tex>Q</tex> и проходящей через точку <tex>P_{i + 1}</tex>(ближайшая точка на <tex>i + 1</tex> уровне)равна <tex>O(1)</tex>
|proof=Пусть есть функция <tex>circle(q, p, i)</tex>, возвращающая <tex>1</tex>, если точка <tex>p</tex> принадлежит окружности с центром в точке <tex>q</tex>, проходящую через ближайшую к <tex>q</tex> на <tex>i</tex> уровне точку, а иначе <tex>0</tex>.
{{Лемма
|about=13|id=415|statement=Один уровень в среднем обрабатывается за Степень ближайшей вершины <tex>O(1)</tex>|proof=По Доказательство копирует случай на [[Триангуляция Делоне#2nearestdegreelemma|лемме 11плоскости]] алгоритм пройдет в среднем <tex>O(1)</tex> вершин, степень которых так же равна по [[#3|лемме 12]] <tex>O(1)</tex>, следовательно один уровень будет обработан за <tex>O(1)</tex>.
}}
{{Лемма
|id=16|statement=Точка на сфере может быть ближайшей для не более Один уровень в среднем обрабатывается за <tex>6O(1)</tex> точек.|proof=Пусть это не так. Тогда некоторая точка По [[#2|лемме 11]] алгоритм пройдет в среднем <tex>U</tex> является ближайшей для <tex>7</tex> точек: <tex>A_1 \dots A_7</tex>. Проведем плоскости вида <tex>UO A_i</tex>. Угол мнежду этими плоскостями строго меньше <tex>60</tex> градусов O(иначе сумма углов превосходила бы <tex>360</tex>1). Рассмотрим плоскость <tex> A_i U A_{i + 1} </tex>. Угол вершин, степень которых так же равна по [[#3|лемме 12]] <tex> A_i U A_{i + O(1} )</tex> равен углу между плоскостями , следовательно один уровень будет обработан за <tex>UOA_i</tex> и <tex>UOA_{i + O(1})</tex>(следовательно он меньше 60 градусов), аналогично для других углов треугольника.
}}
{{Лемма
|statement=Степень ближайшей вершины <tex>O(1)</tex>
|proof=TBD
}}
{{Лемма
|id=17|statement=На третьем втором этапе алгоритма луч в среднем пересечет <tex>O(1)</tex> ребер.
|proof=Рассмотрим окружность с центром в точке <tex>Q</tex>, проходящую через ближайшую для неё точку триангуляции <tex>P_{i + 1}</tex>.
Количество таких ребер, хотя бы одна граница которых принадлежит окружности не превосходит суммы степеней вершин внутри окружности, следовательно их <tex>O(1)</tex>.
|about=Следствие
|statement=Локализация в среднем работает за <tex>O(\log{n})</tex>
|proof=
}}
 
 
{{Лемма
|id=18
|statement=Точка на сфере может быть ближайшей для не более <tex>6</tex> точек.
|proof=Пусть это не так. Тогда некоторая точка <tex>P</tex> является ближайшей для <tex>7</tex> точек: <tex>A_1 \dots A_7</tex>. Проведем отрезки <tex>P A_i</tex>. Сумма углов между этими отрезками(дугами) равна <tex>2\pi</tex>
 
Рассмотрим треугольник <tex>A_i P A_{i + 1}</tex>, где угол <tex>A_i P A_{i + 1}</tex> минимальный. Он строго меньше <tex>\dfrac{\pi}{3}</tex> (иначе сумма углов была бы больше <tex>2\pi</tex>).
[[https://lurklurk.com/Британские_учёные |Британкие ученые доказали]}, что сумма углов в сферическом треугольнике строго больше <tex>\pi</tex>(школьный факт).
Однако по сферической теореме синусов напротив максимальной стороны лежит максимальный угол. Значит в таком треугольнике сумма углов меньше <tex>\pi</tex>. Противоречие.
}}
1632
правки

Навигация