<?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=9159&amp;view=findpost&amp;p=90011</guid>
        <pubDate>Tue, 23 Sep 2003 13:56:14 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90011</link>
        <description><![CDATA[wormball: ну так множить можно уже по ходу<br><br>только надо помнить, что операция перемножения матриц некоммутативна ;D]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90010</guid>
        <pubDate>Tue, 23 Sep 2003 13:54:15 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90010</link>
        <description><![CDATA[Fire_Hawk: (CenterX, CenterY) - точка, вокруг которой вращаем<br>SinAngle, CosAngle - заранее вычисленные синус и косинус угла поворота<br><br>xnew=CenterX+(x-CenterX)*CosAngle-(y-CenterY)*SinAngle;<br>ynew=CenterY+(x-CenterX)*SinAngle+(y-CenterY)*CosAngle;<br><br>Код выполняет несколько другую операцию - пиксел [x,y] переносит в [xnew, ynew]<br>Поэтому если вращение будет не в ту сторону, поменяй знак у SinAngle<br><br>3d... Сейчас, посмотрю, где-то в тетрадке<br>Поворот вокруг оси, проходящей через начало координат<br>Грубо говоря, разлагаем поворот на угол на поворот вокруг осей X, Y и Z<br>Итак<br>A - матрица поворота вокруг оси X<br>B - матрица поворота вокруг оси Y<br>C - матрица поворота вокруг оси Z<br><br><strong class='tag-b'>Rnew</strong>=A*B*C*<strong class='tag-b'>R</strong>=D*<strong class='tag-b'>R</strong><br><br>D - некая матрица<br><br>    &#124;1      0      0   &#124;    <br>A=&#124;0  cos fi   sin fi&#124;<br>    &#124;0  -sin fi  cos fi&#124;<br> <br>    &#124;cos teta  0  -sin teta&#124;<br>B=&#124;0        1      0   &#124;    <br>    &#124;sin teta   0  cos teta&#124;<br><br>   &#124;cos dzeta   sin dzeta  0&#124;<br>C=&#124;-sin dzeta  cos dzeta  0&#124;<br>    &#124;       0            0       1&#124;    <br><br>Энтузиастам просьба перемножить матрицы. Ребята, которые уже засветились в этой теме, you are welcome!<br>]]></description>
        <author>Fire_Hawk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90009</guid>
        <pubDate>Tue, 23 Sep 2003 12:56:10 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90009</link>
        <description><![CDATA[wormball: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>WinterMute, 23.09.03, 00:40:04</span><div class='quote '>А как строится матрица поворота? Разве при её построении SIN/COS не используется?</div></div><br>используется! как ты догадался?? ;D<br>но используется только один раз. далее, если у тебя напр 1000 векторов, ты их просто умножаешь на матрицу без извлечения синусов и косинусов.]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90008</guid>
        <pubDate>Tue, 23 Sep 2003 12:03:48 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90008</link>
        <description><![CDATA[rodion: Да мне быстро не надо]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90007</guid>
        <pubDate>Mon, 22 Sep 2003 20:40:04 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90007</link>
        <description><![CDATA[WinterMute: А как строится матрица поворота? Разве при её построении SIN/COS не используется?]]></description>
        <author>WinterMute</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90006</guid>
        <pubDate>Mon, 22 Sep 2003 15:47:48 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90006</link>
        <description><![CDATA[wormball: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>WinterMute, 22.09.03, 19:22:49</span><div class='quote '>-- Муторно, но должно быть заметно быстрее чем традиционный способ.</div></div><br>сначала изучи традиционный способ, а потом говори. а он заключается в построении матрицы поворота и умножении на неё всех векторов (заметь, в декартовых координатах).]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90005</guid>
        <pubDate>Mon, 22 Sep 2003 15:22:49 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90005</link>
        <description><![CDATA[WinterMute: А что сложного в переходе к полярным координатам и обратно. Есть конечно разные точки, где tg = бесконечность. Да еще точка (0, 0) -- особенная. Но Если важна скорость, то пожертвовав точностью можно сделать так:<br><br>0. Создать таблицу (X,Y) -&gt; УГОЛ<br>1. Нормализовать длинну вектора до большого целого значения, до 10000 например.<br>2. Найти в таблице ближайший угол соответствующий нормализованным X и Y (здесь, если хочется, можно воспользоваться линейной интерполяцией)<br>3. Прибавить к углу нужную величину<br>4. Найти (X,Y) соответствующие полученному углу<br>5. Умножить X и Y на коэффициэнты нормализации.<br><br>-- Муторно, но должно быть заметно быстрее чем традиционный способ. (-) -- нужна таблица УГОЛ -- (X,Y). Многое будет зависить от алгоритма поиска значения в массиве.]]></description>
        <author>WinterMute</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90004</guid>
        <pubDate>Mon, 22 Sep 2003 13:01:46 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90004</link>
        <description><![CDATA[wormball: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>PAV, 22.09.03, 16:01:28</span><div class='quote '>to Black_Star <br>А Вы пробовали реализовывать subj?</div></div><br><br>точнее пробовали ли написать 3d action?? ;D ;D]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90003</guid>
        <pubDate>Mon, 22 Sep 2003 12:01:28 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90003</link>
        <description><![CDATA[PAV: Поворот точки вокруг произвольной оси описывается углами Эйлера<br><br>to Black_Star <br>А Вы пробовали реализовывать subj?]]></description>
        <author>PAV</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90002</guid>
        <pubDate>Sun, 21 Sep 2003 00:25:34 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90002</link>
        <description><![CDATA[PropellerMan: хехе, как все просто, когда на словах...<br>на gamedev.ru написано.]]></description>
        <author>PropellerMan</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90001</guid>
        <pubDate>Sat, 20 Sep 2003 19:01:02 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90001</link>
        <description><![CDATA[Black_Star: находишь угол относительно перпендикулярной оси и крутишь за счет увеличения (уменьшения) угла...]]></description>
        <author>Black_Star</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90000</guid>
        <pubDate>Sat, 20 Sep 2003 10:45:00 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=90000</link>
        <description><![CDATA[wormball: зачем тебе??]]></description>
        <author>wormball</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=89999</guid>
        <pubDate>Sat, 20 Sep 2003 10:39:11 +0000</pubDate>
        <title>Поворот</title>
        <link>https://forum.sources.ru/index.php?showtopic=9159&amp;view=findpost&amp;p=89999</link>
        <description><![CDATA[rodion: Как повернуть точку вокруг произольной оси]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	