2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение06.01.2018, 20:03 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1281780 писал(а):
А зачем вам решать такую задачу?
Что понять, какая из двух возможных вершин лежит на усекаемом ребре диаграммы. И вообще, задача есть, почему не найти к ней красивое решение?

-- 06.01.2018, 21:05 --

slavav в сообщении #1281780 писал(а):
Спроектировать на плоскость
Как-то не красиво. Не понятно какую плоскость брать, например. Плюс окружность не перейдёт в отрезок, чтобы воспользоваться результатом плоской задачи.

-- 06.01.2018, 21:09 --

slavav в сообщении #1281780 писал(а):
что есть в диаграмме на плоскости, чего нет в диаграмме на сфере.
Бесконечные лучи? Всё равно, как-то пример не очевиден. Должны отсечься две вершины, из которых выходит на бесконечность по лучу, но другими рёбрами они не соединены? Такое возможно?

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение06.01.2018, 20:16 
Заслуженный участник


26/05/14
981
B@R5uk в сообщении #1281736 писал(а):
Оказывается, не всё так просто. На сфере у любой окружности два центра и два радиуса, поэтому для каждой тройки вершин всегда есть две потенциальные вершины диаграммы. Я то думал, что достаточно брать ближайшую, причём единственный случай, когда это не работает, — диаграмма из трёх вершин, образующих тупоугольный треугольник. А на самом деле, эта ситуация с выбором из ближней и дальней точки сплошь и рядом, причём в пользу дальней точки голос отдаётся так же часто, как в пользу ближней (если вообще не чаще). Вот, думаю теперь: как этот выбор наиболее грамотно оформить?
Уже было. Выбирать нужно ту вершину у которой внутренность диска пуста. Иногда этому критерию соответствуют обе вершины, тогда выбирайте обе. Иногда ни одной.

Вообще перебирая всевозможные тройки, строя два диска и проверяя их пустоту можно построить элементарный алгоритм со сложностью $O(N^4)$.

Забавно что на плоскости принадлежность точки диску описанному вокруг трёх других точек делается без построения центра диска. Интересно, можно ли так на сфере?

-- 06.01.2018, 20:20 --

B@R5uk в сообщении #1281782 писал(а):
slavav в сообщении #1281780 писал(а):
А зачем вам решать такую задачу?
Что понять, какая из двух возможных вершин лежит на усекаемом ребре диаграммы. И вообще, задача есть, почему не найти к ней красивое решение?
Эту задачу не обязательно решать, если решить задачу о пустоте внутренности диска.

-- 06.01.2018, 20:23 --

B@R5uk в сообщении #1281782 писал(а):
slavav в сообщении #1281780 писал(а):
Спроектировать на плоскость
Как-то не красиво. Не понятно какую плоскость брать, например. Плюс окружность не перейдёт в отрезок, чтобы воспользоваться результатом плоской задачи.
Плоскость - плоскость большого круга. Окружность перейдёт в окружность на плоскости, точки в углы. Останется выяснить лежит ли один угол между двумя другими.

-- 06.01.2018, 20:28 --

B@R5uk в сообщении #1281782 писал(а):
slavav в сообщении #1281780 писал(а):
что есть в диаграмме на плоскости, чего нет в диаграмме на сфере.
Бесконечные лучи? Всё равно, как-то пример не очевиден. Должны отсечься две вершины, из которых выходит на бесконечность по лучу, но другими рёбрами они не соединены? Такое возможно?
Такое невозможно. Вы пропустили важный факт: если удаляется хотя бы одна вершина, то удаляемый кусок связен. На плоскости можно удалить кусок диаграммы, так что все вершины останутся.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение06.01.2018, 21:34 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1281784 писал(а):
Выбирать нужно ту вершину у которой внутренность диска пуста.
Слишком трудоёмко: надо будет перебрать все не задействованные вершины. Хочется использовать минимально необходимую для выбора информацию: точка и отрезок.

slavav в сообщении #1281784 писал(а):
Забавно что на плоскости принадлежность точки диску описанному вокруг трёх других точек делается без построения центра диска.
Поделитесь секретом?

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение06.01.2018, 22:53 
Заслуженный участник


26/05/14
981
Чтобы правильно выбрать вершину надо знать как вы собрали три точки. На плоскости точки всегда собираются против часовой стрелки (или всегда по часовой). На сфере надо принять подобное соглашение. Тогда выбирать вершину вообще не придётся.

Секрет объясняется тут: https://en.wikipedia.org/wiki/Circumscribed_circle#Cartesian_coordinates. Там есть определитель равный нулю. Если рассмотреть случай когда он положителен/отрицателен мы получим критерий того что точка внутри/снаружи от диска.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение07.01.2018, 16:40 
Аватара пользователя


26/05/12
1534
приходит весна?
Частично заработало добавление четвёртой точки:

Изображение

Хотя пока ещё есть ошибки и не до конца строится структура связей. Плюс выпуклая оболочка сайтов строится по кратчайшему пути, а это не правильно: при неудачном расположении сайтов рёбра будут пересекаться. Хотя как это исправлять я пока без понятия.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение07.01.2018, 20:29 
Аватара пользователя


26/05/12
1534
приходит весна?
Выловил глюк, теперь добавление четвёртой точки работает во всех случаях. Осталось доделать заполнение структур и проверить добавление ещё точек по одной. Однако мне не нравится как соединяются сайты:

Изображение

Это ни на что не влияет, но всё-таки хотелось бы придумать способ узнать, что сайты 3 и 4 надо соединить не по кратчайшему пути, а по наидлиннейшему. При этом не хотелось бы проверять наличие пересечения ребра 3-4 триангуляции со всеми остальными рёбрами. Вообще, во всех таких случаях соответствующее ребро диаграммы лежит на другой стороне сферы. Как бы это утверждение математически формализовать?

-- 07.01.2018, 22:15 --

B@R5uk в сообщении #1281773 писал(а):
Можно было бы воспользоваться проверкой расстояний. То есть считать, что точка C лежит вне отрезка AB, если $\left|AC\right| + \left|BC\right| > \left|AB\right|$. Однако, если точка C лежит внутри отрезка AB, то по идее должно выполнятся равенство $\left|AC\right| + \left|BC\right| = \left|AB\right|$, которое является единственной альтернативой предыдущему неравенству.
Перемудрил я с проверкой расстояний на плоскости. Если известно, что точки A, B и C лежат на одной прямой и необходимо определить, принадлежит ли точка C отрезку AB, то для этого надо проверить выполнение двух неравенств: $\left|AC\right| < \left|AB\right|$ и $\left|CB\right| < \left|AB\right|$. Если оба неравенства выполняются, то точка лежит внутри отрезка, в противном случае — не лежит.

Кроме того, можно поступить чуток иначе, а именно проверить только первое неравенство $\left|AC\right| < \left|AB\right|$ и проверить, что векторы $\overrightarrow{AB}$ и $\overrightarrow{AC}$ сонаправлены (например, что скалярное произведение больше нуля).

Первый подход на сферу (вернее даже на окружность), к сожалению, не переносим. Всё потому что между двумя точками на окружности есть два расстояния. Поэтому в ситуации на рисунке:

Изображение

для обоих точек $C_k$ выполняются неравенства $\left|AC_k\right| < \left|AB\right|$ и $\left|C_kB\right| < \left|AB\right|$ вне зависимости от того, принадлежность какой дуге AB — большей или меньшей — для точки С мы проверяем.

На сфере в этом плане вообще всё сложнее: для диаметрально противоположных точек A и B существует куча разных отрезков, принадлежность которым можно проверять. Впрочем, если задано, что точка C лежит на большой окружности (сферической прямой), проходящей через точки A и B, то вопрос только в том, как указать нужную половинку этой окружности.

B@R5uk в сообщении #1281773 писал(а):
Итак, возникла следующая задача. На сфере имеются три точки, например, A, B и C, лежащие на одной сферической прямой (большой окружности). Необходимо определить, лежит ли точка C внутри отрезка AB.
Решение надо начинать с правильного задания сферического отрезка. Я предлагаю его задавать специальной точкой — центром сферической прямой (большой окружности). Для случая, когда две точки A и B не являются диаметрально противоположными этот центр прямой находится нормированием векторного произведения радиус-векторов точек A и B. Здесь подразумевается, что сфера единичного радиуса погружена в трёхмерное пространство и её центр совпадает с началом координат. Эта точка точка остаётся инвариантной при усечении, удлинении сферического отрезка, а так же при его переносе параллельно самому себе, если это так можно назвать. Своего рода направляющий радиус-вектор сферической прямой.

Следующей точкой, задающей сферический отрезок будет, естественно, его начало. С этим всё понятно. И последней задающей величиной является длина отрезка L. Она должна быть положительна и меньше $2\pi$. Отрезок откладывается вдоль своей окружности против часовой стрелки, если наблюдать из центра окружности. Поэтому, например, справедливо следующее равенство: $\[\overrightarrow{{{R}_{B}}}=\overrightarrow{{{R}_{A}}}\cos L+\left[ \overrightarrow{{{R}_{A}}}\times \overrightarrow{{{R}_{cntr}}} \right]\sin L\]$. Такой подход весьма универсален, поскольку он позволяет однозначно задать любые сферические отрезки которые только можно себе вообразить, в том числе, длина которых больше кратчайшего расстояния между концами отрезка.

Теперь решение задачи о принадлежности. Последуем второму подходу, сделанному на плоскости. Проверим неравенство $\left|AC\right| < \left|AB\right|$, а так же проверим, что точка C откладывается в ту же сторону, что и точка B. Для этого вектор $\[\left[ \overrightarrow{{{R}_{A}}}\times \overrightarrow{{{R}_{C}}} \right]\]$ должен быть сонаправлен с радиус-вектором центра окружности. Здесь, правда, есть тонкость, если мы допускаем возможность отрезков с длиной большей $\pi$. В этом случае, если $\left|AC\right| < \pi$, то надо проверять $\[\left[ \overrightarrow{{{R}_{A}}}\times \overrightarrow{{{R}_{C}}} \right]\uparrow \uparrow \overrightarrow{{{R}_{cntr}}}\]$, а если же $\left|AC\right| > \pi$, то $\[\left[ \overrightarrow{{{R}_{A}}}\times \overrightarrow{{{R}_{C}}} \right]\uparrow \uparrow -\overrightarrow{{{R}_{cntr}}}\]$. В случае $\left|AC\right| = \pi$ точки A и C диаметрально противоположны, и точка C лежит на любой окружности, проходящей через точку A. Это, правда, в теории. На практике погрешности округления в такой ситуации приведут к проблемам. Но в целом задача решена.

В моём случае, мне надо из двух диаметрально противоположных точек выбрать ту, которая принадлежит отрезку. Причём его длина не больше $\pi$, и гарантировано, что такая точка одна и только одна. Поэтому сравнивать расстояния не требуется, только сонаправленность векторного произведения и радиус-вектора центра окружности.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение07.01.2018, 21:41 
Заслуженный участник


26/05/14
981
B@R5uk в сообщении #1282093 писал(а):
Однако мне не нравится как соединяются сайты

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

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение07.01.2018, 21:53 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1282114 писал(а):
так сразу есть треугольники с различными ориентациями
Если честно, не представляю как можно их ориентировать. Задать порядок обхода вершин, чтобы наблюдая из центра описанной окружности вершины обходились против часовой стрелки? А потом что? Требовать, чтобы общие стороны треугольников обходились в противоположные стороны? Как-то не очень понятно. Мне больше бросается в глаза то, что радиус-векторы центров соответствующих ребра триангуляции и ребра диаграммы смотрят в разные стороны. Это, кстати, хорошо формализуется: надо потребовать чтобы скалярное произведение этих векторов было положительно.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение07.01.2018, 22:06 
Заслуженный участник


26/05/14
981
Для любого планарного графа можно так задать обходы всех граней что общие рёбра будут обходится в противоположных направлениях. Поэтому диаграммы Вороного представляют в виде DCEL.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 12:22 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1282114 писал(а):
Присмотритесь к ориентациям треугольников в триангуляции. Они все должны быть ориентированы одинаково. Как только вам не нравятся как соединяются сайты, так сразу есть треугольники с различными ориентациями
Всё-таки, думаю, ориентация не будет работать в определении прохождения рёбер триангуляции. Правильность ориентации треугольников подразумевает, что она останется таковой и после добавления нового сайта. Поэтому рёбра уже существующих треугольников не должны меняться. А в ситуации на картинке:

Изображение

при добавлении сайта 4 ребро 2-3 должно поменяться и пройти по другую сторону сферы, хотя с треугольником 123 ничего не происходит.

B@R5uk в сообщении #1282120 писал(а):
Это, кстати, хорошо формализуется: надо потребовать чтобы скалярное произведение этих векторов было положительно.
Такой подход тоже работает не корректно. Часто вместо допустимого кратчайшего пути выбирается длинный. Пока не знаю как это математически формализовать.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 12:54 
Заслуженный участник


26/05/14
981
B@R5uk в сообщении #1282311 писал(а):
при добавлении сайта 4 ребро 2-3 должно поменяться и пройти по другую сторону сферы, хотя с треугольником 123 ничего не происходит.
В круг описанный вокруг треугольника 123 попадает точка 4, которая его (треугольник) разбивает.

Будет правильно считать что в триангуляции на левой сфере два треугольника: 123 и 321.
Как их рисовать? Описываете круг вокруг 123 и соединяете точки дугами (больших кругов) внутри описанного круга. Тоже для 321.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 16:35 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1282323 писал(а):
В круг описанный вокруг треугольника 123 попадает точка 4, которая его (треугольник) разбивает.
Да, пожалуй так тоже можно трактовать.

slavav в сообщении #1282323 писал(а):
Описываете круг вокруг 123 и соединяете точки дугами (больших кругов) внутри описанного круга. Тоже для 321.
Тогда получается на левой картинке должно быть значительно больше отрезков, соединяющих точки (целые окружности даже). Это как-то не правильно.

Вообще, факт того, что ребро 2-3 триангуляции нужно направить по длинной части окружности можно уже понять в момент, когда производится усечение ребра 1-2 диаграммы до ребра 1-4. То есть привлекать для этого дела весь треугольник 123 — это перебор, на мой взгляд. Хотелось бы какой-нибудь простой критерий.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 17:16 
Заслуженный участник


26/05/14
981
B@R5uk в сообщении #1282406 писал(а):
Тогда получается на левой картинке должно быть значительно больше отрезков, соединяющих точки (целые окружности даже). Это как-то не правильно.
Я понимаю ваши сомнения. Граф триангуляции для трёх точек на сфере выглядит странно, но что можно сделать? Имея три точки невозможно сказать какой имелся в виду треугольник. Если все точки близко, то интуиция опираясь на плоский случай выбирает треугольник автоматически. Но это неправильно, выбор треугольника не должен зависеть от его метрических свойств.
Например, разместим три точки на одной параллели вблизи северного полюса. Интуитивно ясно, как задан треугольник - небольшой треугольничек, почти плоский. Теперь всем трём точкам будем уменьшать широту. Как вы выберете треугольник когда все три точки окажутся на экваторе? Где будет его внутренность? В северном полушарии или в южном? Почему треугольник вывернется на изнанку, когда точки перейдут в южное полушарие?
На эти вопросы нет строгого ответа. А раз так, то проще считать что (неупорядоченная) тройка точек задаёт не один а два треугольника. Это же верно и на плоскости (проективной).

B@R5uk в сообщении #1282406 писал(а):
Вообще, факт того, что ребро 2-3 триангуляции нужно направить по длинной части окружности можно уже понять в момент, когда производится усечение ребра 1-2 диаграммы до ребра 1-4. То есть привлекать для этого дела весь треугольник 123 — это перебор, на мой взгляд. Хотелось бы какой-нибудь простой критерий.
Такого критерия нет. Если вы его построите, то я непрерывно двигая эту пару точек найду положение, когда он "переключается". А критерий должен быть непрерывен из топологических соображений. Диск задаёт треугольник однозначно и этот треугольник меняется непрерывно от координат трёх точек.

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 20:32 
Аватара пользователя


26/05/12
1534
приходит весна?
slavav в сообщении #1282418 писал(а):
А критерий должен быть непрерывен из топологических соображений.
Почему же? Вы же сами писали выше, что если точка 4 попадает внутрь малой окружности, описанной вокруг треугольника 123, то этот треугольник разрушается и ребро 23 нужно вывернуть на обратную сторону сферы. У нас и выбор дискретен: всего два варианта и критерий должен выдать два варианта: "до переключения" или "после переключения". На мой взгляд всё нормально. Поэтому для меня вопрос стоит в том, как технически более просто получить правильный ответ с расположением ребра.

slavav в сообщении #1282418 писал(а):
Имея три точки невозможно сказать какой имелся в виду треугольник.
Ну, в этом вы меня убедили. Три точки — это исключительно ненормальный случай, да и вообще, любое расположение сайтов, для которого через центр сферы можно провести плоскость так, чтобы все сайты оказались по её одну сторону, тоже удовлетворительным назвать нельзя.

Я тут придумал один более-менее простой критерий: минимальное расстояние от концов ребра диаграммы до центра ребра триангуляции должно быть меньше $\pi/2$, в противном случае надо вывернуть ребро триангуляции на другую сторону сферы. Для большего числа точек ещё не пробовал, но для четырёх вроде всё время работает:

Изображение Изображение

 Профиль  
                  
 
 Re: Сферическая планиметрия (сферометрия?)
Сообщение08.01.2018, 20:54 
Заслуженный участник


26/05/14
981
B@R5uk в сообщении #1282469 писал(а):
Вы же сами писали выше, что если точка 4 попадает внутрь малой окружности, описанной вокруг треугольника 123, то этот треугольник разрушается и ребро 23 нужно вывернуть на обратную сторону сферы.
Этого я не писал. Не "малая окружность", а диск заданный ориентированной тройкой точек. Никогда при добавлении новых точек никакие рёбра не выворачиваются. Новая точка может укоротить или удалить рёбра, но не вывернуть их. Именно с этой позиции я говорю про два треугольника внутри двух дисков.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 95 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group