<?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=368768&amp;view=findpost&amp;p=3247163</guid>
        <pubDate>Sat, 08 Dec 2012 17:52:25 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3247163</link>
        <description><![CDATA[#SI#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3243905'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Daiver &#064; <time class="tag-quote__quoted-time" datetime="2012-12-01T00:02:37+04:00">30.11.12, 20:02</time></span><div class='quote '>Под разницей я понимаю минимальное расстояние (радианах) между 2 углами на тригонометрической окружности</div></div><br>
Так и флаг в руки<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>  const double TOLERANCE = 0.0001;<br>
  if (deltaAngle &gt; TOLERANCE) {<br>
  }<br>
  else {<br>
  }</div></div><br>
А уж что на вход дельтаУгол - сам решай. Мне хватает двух точек - точки вставки (база) и точки ориентации (направление).]]></description>
        <author>#SI#</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244309</guid>
        <pubDate>Sun, 02 Dec 2012 14:33:14 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244309</link>
        <description><![CDATA[amk: Пожалуй, самый быстрый способ найти угол между двумя углами (лучами) это:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">da = a1 - a2 # Ищем разность</div><div class="code_line">if da &#60; -pi: da += 2*pi # и загоняем её в промежуток +-pi</div><div class="code_line">elif da &#62; pi: da -= 2*pi</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3244294'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MBo &#064; <time class="tag-quote__quoted-time" datetime="2012-12-02T13:41:04+00:00">02.12.12, 13:41</time></span><div class='quote '>достаточно будет найти отношение векторного и скалярного произведений векторов</div></div> Не совсем, можно нарваться на ошибку деления на ноль. Так что лучше раскрывать пропорцию.<br>
<br>
Но действительно, вычислять арктангенс, даже если предполагается сравнивать каждый угол с каждым незачем. Это дольше, чем сравнивать пропорции.]]></description>
        <author>amk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244294</guid>
        <pubDate>Sun, 02 Dec 2012 13:41:04 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244294</link>
        <description><![CDATA[MBo: <strong class='tag-b'>Daiver</strong><br>
Получается, что есть два вектора? Тогда угол между ними можно найти, не вычисляя угол наклона каждого по отдельности. Кроме того, для проверки попадания угла в диапазон и арктангенс не понадобится, достаточно будет найти отношение векторного и скалярного произведений векторов]]></description>
        <author>MBo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244276</guid>
        <pubDate>Sun, 02 Dec 2012 12:49:14 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244276</link>
        <description><![CDATA[Daiver: <strong class='tag-b'>Yakudza</strong> Хэш не совсем пойдет, т.к. углы могут быть произвольными<br>
<br>
<strong class='tag-b'>MBo</strong> Гм, в общем-то да, углы вычисляются через arctan2. Так я ищу угол наклона градиента<br>
<br>
А задача - реализация SWT-оператора с последующей фильтрацией. Углы сравниваются на этапе отслеживания лучей]]></description>
        <author>Daiver</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244249</guid>
        <pubDate>Sun, 02 Dec 2012 10:50:18 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244249</link>
        <description><![CDATA[MBo: откуда берутся эти углы и какова более общая задача?<br>А то, может, углы вычисляются через arc-функции...]]></description>
        <author>MBo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244231</guid>
        <pubDate>Sun, 02 Dec 2012 09:24:19 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244231</link>
        <description><![CDATA[Yakudza: Если развивать идею с хешем. <br>
<br>
Если набор углов фиксирован, то ускорения можно добиться тупо массивом bool.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">bool hash_half_pi[720];</div><div class="code_line">// fill for pi/2 </div><div class="code_line">for (int i = 0; i &#60; 90; ++i) hash_half_pi[i] = false;</div><div class="code_line">for (int i = 90; i &#60; 270; ++i) hash_half_pi[i] = true;</div><div class="code_line">for (int i = 270; i &#60; 450; ++i) hash_half_pi[i] = false;</div><div class="code_line">for (int i = 450; i &#60; 630; ++i) hash_half_pi[i] = true;</div><div class="code_line">for (int i = 630; i &#60; 720; ++i) hash_half_pi[i] = false;</div><div class="code_line">&nbsp;</div><div class="code_line">bool is_larger(float a, float b, bool* hash) </div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;return hash[int(a-b)+360];</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
Но на границах может врать.]]></description>
        <author>Yakudza</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244211</guid>
        <pubDate>Sun, 02 Dec 2012 07:12:30 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244211</link>
        <description><![CDATA[Daiver: <strong class='tag-b'>Yakudza</strong> Боюсь что сам вызов сишной ф-ии будет слишком дорогой]]></description>
        <author>Daiver</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244202</guid>
        <pubDate>Sat, 01 Dec 2012 23:45:59 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244202</link>
        <description><![CDATA[Yakudza: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3244078'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>shm &#064; <time class="tag-quote__quoted-time" datetime="2012-12-01T15:05:36+00:00">01.12.12, 15:05</time></span><div class='quote '>Да все банально: создаешь двухмерный массив n*n, чем больше n, тем больше будет точность</div></div><br>
Я бы создавал одномерный и индексировал его по (a-b). Так и памяти меньше и индексировать проще. <br>
<br>
С другой стороны будет ли залезть в этот массив быстрее? Еще же углы нужно к индексам привести, проинтерполировать между соседними точками... Исходная функция-то дешевенькая. Хотя если сделать плотный массив, приведеие к индексу свести к приведению типа и брать первый попавшийся элемент без интерполяции, то должно помочь. Хотя, если в некоторых вычислительных пакетах пришли к тому, что интеграл быстрее лишний раз взять численно, чем из памяти его доставать...<br>
<br>
Если совсем проблема будет с ускорением, то можно на С модуль к питону (плагин? как оно называется) написать и просить эту функцию. :lol:]]></description>
        <author>Yakudza</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244078</guid>
        <pubDate>Sat, 01 Dec 2012 15:05:36 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3244078</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3243983'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Daiver &#064; <time class="tag-quote__quoted-time" datetime="2012-12-01T09:59:02+00:00">01.12.12, 09:59</time></span><div class='quote '>Насчет таблицы - можно поподробней?</div></div><br>
Да все банально: создаешь двухмерный массив n*n, чем больше n, тем больше будет точность, но тем больше потребуется памяти. Пусть столбцы будут первым углом, а стоки вторым. Ну и заполняешь эту матрицу своей функцией. Потом дял получения искомого результата пользуешься уже вычисленным значением. Правда не знаю как это будет выглядеть на питоне.]]></description>
        <author>shm</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243983</guid>
        <pubDate>Sat, 01 Dec 2012 09:59:02 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243983</link>
        <description><![CDATA[Daiver: <strong class='tag-b'>shm</strong> Насчет таблицы - можно поподробней?<br>
<br>
Пускай не тысячи, а десятки тысяч, плюс все пишется на питоне <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-12-01T10:00:01+00:00">01.12.12, 10:00</time></span></span><br>
Важно даже не получить точную разницу, а узнать что эта разница больше/меньше определенного угла (pi/6 к примеру)]]></description>
        <author>Daiver</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243972</guid>
        <pubDate>Sat, 01 Dec 2012 08:08:40 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243972</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3243954'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Daiver &#064; <time class="tag-quote__quoted-time" datetime="2012-12-01T02:40:18+00:00">01.12.12, 02:40</time></span><div class='quote '>хотелось бы пошустрее конечно</div></div><br>
Быстрее только таблицу готовую сделать. Можешь заинлайнить еще.<br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-12-01T08:11:44+00:00">01.12.12, 08:11</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3243954'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Daiver &#064; <time class="tag-quote__quoted-time" datetime="2012-12-01T02:40:18+00:00">01.12.12, 02:40</time></span><div class='quote '>речь идет о тысячах таких операций в секунду</div></div><br>
Несколько тысяч вызовов этой функции отработают на порядок быстрее 1 сек.]]></description>
        <author>shm</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243954</guid>
        <pubDate>Sat, 01 Dec 2012 02:40:18 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243954</link>
        <description><![CDATA[Daiver: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=368768&view=findpost&p=3243947'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Yakudza &#064; <time class="tag-quote__quoted-time" datetime="2012-11-30T22:54:06+00:00">30.11.12, 22:54</time></span><div class='quote '>ИМХО быстрее чем тупо посчитать угол и сравнить не получится.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#define PI 3.1415</div><div class="code_line">&nbsp;</div><div class="code_line">float distance(float a, float b) // считает разницу между двумя углами</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;float r1, r2;</div><div class="code_line">&nbsp;&nbsp;if (a&#62;b) { r1 = a-b; r2 = b-a+2*PI } else { r1 = b-a; r2=a-b+2*PI; }</div><div class="code_line">&nbsp;&nbsp;return (r1&#62;r2) ? r2 : r1;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Недостаточно быстро?</div></div><br>
Примерно так и считаю, хотелось бы пошустрее конечно. (речь идет о тысячах таких операций в секунду)]]></description>
        <author>Daiver</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243947</guid>
        <pubDate>Fri, 30 Nov 2012 22:54:06 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243947</link>
        <description><![CDATA[Yakudza: ИМХО быстрее чем тупо посчитать угол и сравнить не получится.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#define PI 3.1415</div><div class="code_line">&nbsp;</div><div class="code_line">float distance(float a, float b) // считает разницу между двумя углами</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;float r1, r2;</div><div class="code_line">&nbsp;&nbsp;if (a&#62;b) { r1 = a-b; r2 = b-a+2*PI } else { r1 = b-a; r2=a-b+2*PI; }</div><div class="code_line">&nbsp;&nbsp;return (r1&#62;r2) ? r2 : r1;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Недостаточно быстро?]]></description>
        <author>Yakudza</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243905</guid>
        <pubDate>Fri, 30 Nov 2012 20:02:37 +0000</pubDate>
        <title>Разница между 2 углами</title>
        <link>https://forum.sources.ru/index.php?showtopic=368768&amp;view=findpost&amp;p=3243905</link>
        <description><![CDATA[Daiver: Всем доброго времени суток <br><br>Подскажите, существует ли способ быстро (очень быстро) определить превышает ли разница между 2 углами pi/2, или к примеру pi/6<br><br>Под разницей я понимаю минимальное расстояние (радианах) между 2 углами на тригонометрической окружности.<br>Т.е. если есть 2 угла 10 и 350 градусов, разница между ними равна 20 градусов<br><br>Углы даны в радианах<br><br>Заранее спасибо]]></description>
        <author>Daiver</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	