<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Rotational Transformation</title>
		<link>http://www.allegro.cc/forums/view/559873</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 17 Jan 2006 02:40:42 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a triangle that I wish to rotate to represent the player. I want the tip of the triangle (+) to represent their current angle and the direction in which they would travel (if they were to apply thrust).</p><div class="source-code snippet"><div class="inner"><pre>
      <span class="k3">+</span>
     <span class="k3">/</span> \
    <span class="k3">/</span>   \
   <span class="k3">/</span>_____\
</pre></div></div><p>

The movement code isn&#39;t my problem here, though. It&#39;s actually drawing the triangle. I want to do this using primitives (so no drawing to a bitmap, then rotating). </p><p>I came up with some messy code here as a quick test:</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">float</span> t_x, t_y, t_x2, t_y2, t_x3, t_y3<span class="k2">;</span>
    
    t_x <span class="k3">=</span> <span class="n">100</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">100</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    t_y <span class="k3">=</span> <span class="n">100</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">100</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>   
    t_x2 <span class="k3">=</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    t_y2 <span class="k3">=</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>   
    t_x3 <span class="k3">=</span> <span class="n">0</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    t_y3 <span class="k3">=</span> <span class="n">200</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">0</span> <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Which works to slowly rotate the triangle when the angle is adjusted. But I really need the pivot point to be in the triangles centre (I should think). So how do you do this effectively?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ngiacomelli)</author>
		<pubDate>Mon, 16 Jan 2006 05:09:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I did rotation around a point, if this is what you want, i did it this way</p><div class="source-code snippet"><div class="inner"><pre>
 x <span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span> <span class="n">1</span>
  \
   \
    \
     \
      <span class="n">2</span>
</pre></div></div><p>


rotating point 1 to 2 - adding 45degrees, rotating around x</p><p>get x&lt;-&gt;1 lengt<br />get x&lt;-&gt;1 angle<br />get new angle (angle+45)<br />get rotated position (2) - from x rotate to new angle and use the current length </p><div class="source-code snippet"><div class="inner"><pre>
  <span class="c">//get the length (to point 0,0)</span>
  delka<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  
  <span class="c">//get the angle</span>
  curr_angle <span class="k3">=</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span>, f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="n">180</span><span class="k2">)</span><span class="k3">/</span>M_PI<span class="k2">;</span>
 
  <span class="c">//new angle  curr_angle+=angle;</span>
  
  <span class="c">//new position</span>
  mymodel<span class="k2">[</span>f<span class="k3">+</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span>g<span class="k3">+</span><span class="n">5</span><span class="k2">]</span>.square_x <span class="k3">=</span> delka <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>M_PI<span class="k3">*</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>curr_angle<span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">;</span>
  mymodel<span class="k2">[</span>f<span class="k3">+</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span>g<span class="k3">+</span><span class="n">5</span><span class="k2">]</span>.square_y <span class="k3">=</span> <span class="k2">(</span>delka <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>M_PI<span class="k3">*</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>curr_angle<span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
</pre></div></div><p>

(it&#39;s taken from my new project, where points are rotated around zero)</p><p>anyway, if you have fixed triangle sides, and its always triangle, you can use the pivot as a center of a circle and the two poinst could be easi calculated with the last point (youw kno both angles and both length (cause its a triangle))
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pavel Hilser)</author>
		<pubDate>Mon, 16 Jan 2006 14:47:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Angles, rotations, and circles sure make for some &#39;leet&#39; looking code.<br />What are the first 2 arrays used for in mymodel[][]?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Mon, 16 Jan 2006 16:49:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>it&#39;s taken from his project, so you can imagine that:</p><div class="source-code snippet"><div class="inner"><pre>  <span class="c">//get the length (to point 0,0)</span>
  delka<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  
  <span class="c">//get the angle</span>
  curr_angle <span class="k3">=</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>g<span class="k3">*</span><span class="n">5</span>, f<span class="k3">*</span><span class="n">5</span><span class="k2">)</span><span class="k3">*</span><span class="n">180</span><span class="k2">)</span><span class="k3">/</span>M_PI<span class="k2">;</span>
 
  <span class="c">//new angle  </span>
   curr_angle<span class="k3">+</span><span class="k3">=</span>angle<span class="k2">;</span>
  
  <span class="c">//new position</span>
  square_x <span class="k3">=</span> delka <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>M_PI<span class="k3">*</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>curr_angle<span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">;</span>
  square_y <span class="k3">=</span> <span class="k2">(</span>delka <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>M_PI<span class="k3">*</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>curr_angle<span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
</pre></div></div><p>

is what you need.</p><p>EDIT:<br />where square_x &amp; y are the new position a point rotated around zero.<br />you must adapt this for your use.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> rotate_around<span class="k2">(</span> <span class="k1">int</span> cx , <span class="k1">int</span> cy , <span class="k1">int</span> <span class="k3">*</span>X , <span class="k1">int</span> <span class="k3">*</span>Y , <span class="k1">float</span> angle <span class="k2">)</span><span class="k2">{</span>

<span class="k1">int</span> tx,
    ty<span class="k2">;</span>

<span class="c">/* translation to make cx,cy the center of our rotation */</span>
tx <span class="k3">=</span> <span class="k3">*</span>X <span class="k3">-</span> cx<span class="k2">;</span>
ty <span class="k3">=</span> <span class="k3">*</span>Y <span class="k3">-</span> cy<span class="k2">;</span>

<span class="k3">*</span>X <span class="k3">=</span> cx <span class="k3">+</span>  tx <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">+</span> ty <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span><span class="k2">;</span>
<span class="k3">*</span>Y <span class="k3">=</span> cy <span class="k3">-</span>  tx <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">+</span> ty <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>angle<span class="k2">)</span><span class="k2">;</span>

<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

I&#39;ll test this and update my post to make it doing the trick.</p><p>LAST EDIT:</p><p>WORKING EXAMPLE:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;winalleg.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;math.h&gt;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">void</span> rotate_around<span class="k2">(</span> <span class="k1">int</span> cx , <span class="k1">int</span> cy , <span class="k1">float</span> <span class="k3">*</span>X , <span class="k1">float</span> <span class="k3">*</span>Y , <span class="k1">float</span> angle <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="k1">float</span> X<span class="k3">=</span><span class="n">150</span> , Y <span class="k3">=</span> <span class="n">150</span> <span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><span class="k1">int</span> main<span class="k2">(</span> <span class="k1">int</span> argc , <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span> <span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td><a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td><a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span> <span class="n">32</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span> GFX_AUTODETECT_WINDOWED , <span class="n">640</span> , <span class="n">480</span> , <span class="n">0</span> , <span class="n">0</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>clear<span class="k2">(</span> <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td><span class="k1">do</span><span class="k2">{</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>rotate_around<span class="k2">(</span> <span class="n">320</span> , <span class="n">200</span> , <span class="k3">&amp;</span>X , <span class="k3">&amp;</span>Y , M_PI<span class="k3">/</span><span class="n">180</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span> <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a> , X , Y , <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">255</span> , <span class="n">255</span> , <span class="n">255</span> <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td><a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>&#160;</td></tr><tr><td class="number">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td><span class="k2">}</span><span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td><a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>&#160;</td></tr><tr><td class="number">38</td><td><span class="k2">}</span><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td><span class="c">/*!\fn void rotate_around( int cx , int cy , float *X , float *Y , float angle )</span></td></tr><tr><td class="number">42</td><td><span class="c"> *</span></td></tr><tr><td class="number">43</td><td><span class="c"> *\brief rotate a point around center cx,cy</span></td></tr><tr><td class="number">44</td><td><span class="c"> *</span></td></tr><tr><td class="number">45</td><td><span class="c"> *\param cx the X center</span></td></tr><tr><td class="number">46</td><td><span class="c"> *\param cy the Y center</span></td></tr><tr><td class="number">47</td><td><span class="c"> *\param X the X coordinate of the point to move</span></td></tr><tr><td class="number">48</td><td><span class="c"> *\param Y the Y coordinate of the point to move</span></td></tr><tr><td class="number">49</td><td><span class="c"> *\param angle the amount of radian of the rotation (1 degree = PI/180 rad)</span></td></tr><tr><td class="number">50</td><td><span class="c"> *</span></td></tr><tr><td class="number">51</td><td><span class="c"> */</span> </td></tr><tr><td class="number">52</td><td>&#160;</td></tr><tr><td class="number">53</td><td><span class="k1">void</span> rotate_around<span class="k2">(</span> <span class="k1">int</span> cx , <span class="k1">int</span> cy , <span class="k1">float</span> <span class="k3">*</span>X , <span class="k1">float</span> <span class="k3">*</span>Y , <span class="k1">float</span> angle <span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">54</td><td>&#160;</td></tr><tr><td class="number">55</td><td><span class="k1">float</span> tx,</td></tr><tr><td class="number">56</td><td>     ty<span class="k2">;</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td><span class="c">/* translation to make cx,cy the center of our rotation */</span></td></tr><tr><td class="number">59</td><td>tx <span class="k3">=</span> <span class="k3">*</span>X <span class="k3">-</span> cx<span class="k2">;</span></td></tr><tr><td class="number">60</td><td>ty <span class="k3">=</span> <span class="k3">*</span>Y <span class="k3">-</span> cy<span class="k2">;</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td><span class="k3">*</span>X <span class="k3">=</span> cx <span class="k3">+</span>  tx <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">+</span> ty <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td><span class="k3">*</span>Y <span class="k3">=</span> cy <span class="k3">-</span>  tx <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">+</span> ty <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>&#160;</td></tr><tr><td class="number">65</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 16 Jan 2006 17:32:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://www.allegro.cc/forums/thread/553898#target">Turtle</a> is a nice and simple abstraction for Asteroids-like vector drawing with relative movement and rotations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Pridham)</author>
		<pubDate>Mon, 16 Jan 2006 19:21:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you are wanting to draw an equilateral triangle with the pivot point in its center then it is easy as the three points are at theta, theta + 120deg, and theta + 240deg, where theta is the direction you are pointing.  Then given theta you do sin and cos and multiply by one half of the height of the triangle (since the point is in the center, you want use use &quot;radius&quot; of the triangle).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gillius)</author>
		<pubDate>Mon, 16 Jan 2006 21:08:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>With all this code posted and all those ideas , can you give your mean of the whole, Nial ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 17 Jan 2006 02:40:42 +0000</pubDate>
	</item>
</rss>
