<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3899477</guid>
        <pubDate>Mon, 29 Jan 2024 13:00:39 +0000</pubDate>
        <title>Точки на сфере</title>
        <link>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3899477</link>
        <description><![CDATA[leo: <strong class='tag-b'>Mikle</strong><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Находим пару точек с минимальным дотпродуктом (то есть максимально взаимно удалённые)</div></div><br>
Вопрос: Эту задачу можно выполнить за линейное время?<br>
<br>
Могу предложить модификацию варианта <strong class='tag-b'>Mikle</strong> (критика приветствуется):<br>
Сначала вычисляем средний 3D вектор между всеми точками в исходной системе координат.<br>
Затем за один цикл (на лету) делаем преобразование координат точек с разворотом оси X (или Y) по этому вектору, рассчитываем углы поворота точек в горизонтальной и вертикальной плоскостях в новой системе координат с одновременным определением мин. и макс. значений этих углов.<br>
Окончательно проверяем, что разница мин. и макс. углов в обеих плоскостях не превышает Pi.]]></description>
        <author>leo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897662</guid>
        <pubDate>Fri, 08 Dec 2023 07:00:15 +0000</pubDate>
        <title>Точки на сфере</title>
        <link>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897662</link>
        <description><![CDATA[Mikle: Третья задача.<br>Координаты декартовы. Считаем точки векторами.<br>Находим пару точек с минимальным дотпродуктом (то есть максимально взаимно удалённые). Если дотпродукт = -1, то точки полярны, условие не выполнено.<br>Суммируем найденные вектора, полученную сумму нормализуем, получаем вектор VN1.<br>Находим кросспродукт от VN1 и одного из двух первых векторов, нормализуем, получаем VN2.<br>Находим проекции всех оставшихся точек на плоскость, образованную векторами VN1 и VN2. Ищем углы в этой плоскости между полученными проекциями и вектором VN1. Если диапазон углов лежит в пределах Pi, то точки умещаются в одну полусферу.<br><br>Решение первой задачи можно продолжить из этого решения.]]></description>
        <author>Mikle</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897661</guid>
        <pubDate>Fri, 08 Dec 2023 06:28:10 +0000</pubDate>
        <title>Точки на сфере</title>
        <link>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897661</link>
        <description><![CDATA[prografix: Я придумал для третьей задачи такое решение. <br>Известно, что есть линейный по времени от количества точек алгоритм для нахождения минимальной охватывающей сферы.<br>Находим такую сферу и смотрим на её радиус. Если точки лежат в одной полусфере, то радиус будет меньше 1, иначе - равен 1.<br>Тут плохо разделяется пограничный случай, но для моих целей этого достаточно.<br>Две первые задачи сводятся к третьей следующим образом. Отобразим, к примеру, второе множество точек относительно центра на противоположную сторону сферы.<br>Затем проверим лежат ли первое множество и отображённое второе в одной полусфере. Если да, то значит они разделяются плоскостью.]]></description>
        <author>prografix</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897657</guid>
        <pubDate>Thu, 07 Dec 2023 17:30:10 +0000</pubDate>
        <title>Точки на сфере</title>
        <link>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897657</link>
        <description><![CDATA[Akina: Задача сродни построению минимальной описывающей окружности (МОО) - просто не на плоскости, а на сфере. Должно неплохо решаться при работе в полярных координатах. Имея параметры текущей МОО и точку, несложно определить, внутри точка или нет. А если нет - опять же должно быть несложно построить новую МОО.<br><br>Возможно, что лучше даже работать с минимальной выпуклой оболочкой (МВО) - проверки и достроения будут проще. А потом финальным штрихом - построение МОО вокруг найденной МВО.<br><br>Ну а уж в полярных координатах сравнить МОО с полусферой - и вовсе дело плёвое.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897654</guid>
        <pubDate>Thu, 07 Dec 2023 16:16:28 +0000</pubDate>
        <title>Точки на сфере</title>
        <link>https://forum.sources.ru/index.php?showtopic=440296&amp;view=findpost&amp;p=3897654</link>
        <description><![CDATA[prografix: У меня появилось несколько задач связанных с точками на единичной сфере. Вот 3 из них.<br>1. Даны два множества точек на сфере. Нужно узнать, можно ли их разделить плоскостью проходящей через центр сферы.<br>2. Даны два выпуклых многоугольника на сфере. Нужно узнать, пересекаются ли они.<br>3. Дано множество точек на сфере. Нужно узнать, лежат ли они в одной полусфере.<br>Надеюсь, что есть решения по времени линейно зависящие от количества точек.]]></description>
        <author>prografix</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	