<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Angular timer and how to convert to a rect using an angular algorithm...</title>
		<link>http://www.allegro.cc/forums/view/592106</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 01 Jul 2007 22:01:51 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello again all!</p><p>Does anyone have any ideas / suggestions on how to write this to do the<br />&#39;sweep&#39; but with a rect instead of a circle? I still want to be able to do<br />the circular sweep function, but extend to the entire rect. Below is the<br />circle based &#39;sweep&#39; program. Also, any suggestions on how to simplify the<br />math would be great. Hope someone could use this code some how too...<br />Command &amp; Conquer anyone? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></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="c">/////////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">2</td><td><span class="c">// &lt;Main.cpp&gt;</span></td></tr><tr><td class="number">3</td><td><span class="c">// Donald C Freeman    June 29th, 2007</span></td></tr><tr><td class="number">4</td><td><span class="c">// Simple 'sweep' program to simulate functionality of angular timer.</span></td></tr><tr><td class="number">5</td><td><span class="c">/////////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">6</td><td><span class="p">#define ALLEGRO_USE_CONSOLE</span></td></tr><tr><td class="number">7</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">8</td><td><span class="p">#include &lt;math.h&gt;</span></td></tr><tr><td class="number">9</td><td><span class="c">/////////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">10</td><td><span class="k1">int</span> main<span class="k2">(</span> <span class="k1">void</span> <span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">13</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">14</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">15</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">800</span>,<span class="n">600</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">16</td><td>  <a href="http://www.allegro.cc/manual/set_color_conversion" target="_blank"><span class="a">set_color_conversion</span></a><span class="k2">(</span>COLORCONV_TOTAL<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>  <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">19</td><td>  <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">21</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>pBmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>pBmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>  <span class="k1">bool</span> bQuit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">26</td><td>  <span class="c">//pi = 3.1415926535897932384626433832795</span></td></tr><tr><td class="number">27</td><td>  <span class="c">// 1 degree = pi/180 radians. (0.017453292519943295769236907684886)</span></td></tr><tr><td class="number">28</td><td>  <span class="c">// 1 radian = 180/pi degrees. (57.295779513082320876798154814105)</span></td></tr><tr><td class="number">29</td><td>  <span class="k1">float</span> PI <span class="k3">=</span> <span class="n">3</span>.<span class="n">141592654f</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>  <span class="k1">float</span> x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>  <span class="k1">float</span> y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>  <span class="k1">float</span> angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>  <span class="k1">int</span> nTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>  <span class="k1">int</span> nTimeEnd <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  <span class="k1">float</span> angleStep <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>  <span class="k1">int</span> color1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">128</span>,<span class="n">128</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>  <span class="k1">int</span> color2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">128</span>,<span class="n">200</span>,<span class="n">128</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>  <span class="k1">int</span> radius <span class="k3">=</span> <span class="n">50</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>  <span class="k1">float</span> x2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>  <span class="k1">float</span> y2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>  <span class="k1">float</span> nTimeSliced <span class="k3">=</span> <span class="k2">(</span>nTime<span class="k3">+</span><span class="n">1</span> <span class="k3">/</span> nTimeEnd<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">44</td><td>  <span class="k1">while</span> <span class="k2">(</span> <span class="k3">!</span>bQuit <span class="k2">)</span></td></tr><tr><td class="number">45</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>    <span class="c">/////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">47</td><td>    <span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span></td></tr><tr><td class="number">48</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">49</td><td>      <span class="k1">if</span> <span class="k2">(</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></td></tr><tr><td class="number">50</td><td>        bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>      <span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span> <span class="k2">)</span></td></tr><tr><td class="number">52</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">53</td><td>        <span class="k1">if</span> <span class="k2">(</span> nTimeEnd <span class="k3">&gt;</span> <span class="n">0</span> <span class="k2">)</span></td></tr><tr><td class="number">54</td><td>          nTimeEnd-<span class="k3">=</span><span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>        done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>        nTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>        angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>        angleStep <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">60</td><td>      <span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span> <span class="k2">)</span></td></tr><tr><td class="number">61</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">62</td><td>        done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>        nTimeEnd<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>        nTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>        angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>        angleStep <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">68</td><td>      <span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k2">)</span></td></tr><tr><td class="number">69</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">70</td><td>        done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>        nTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>        angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>        angleStep <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>        <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">76</td><td>      <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">78</td><td>    <span class="c">/////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">79</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>pBmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>    <span class="c">/////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">81</td><td>    <span class="c">// [Drawing code/Processing]</span></td></tr><tr><td class="number">82</td><td>    <span class="k1">if</span> <span class="k2">(</span> <span class="k3">!</span>done <span class="k2">)</span></td></tr><tr><td class="number">83</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">84</td><td>      nTime<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">85</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">86</td><td>    <span class="k1">if</span> <span class="k2">(</span> nTime <span class="k3">=</span><span class="k3">=</span> nTimeEnd <span class="k2">)</span></td></tr><tr><td class="number">87</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">88</td><td>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">89</td><td>      angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">90</td><td>      angleStep <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">91</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">92</td><td>    <span class="k1">if</span> <span class="k2">(</span> nTime <span class="k3">&lt;</span> nTimeEnd <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>done <span class="k2">)</span></td></tr><tr><td class="number">93</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">94</td><td>      nTimeSliced <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span><span class="k2">(</span>nTimeEnd<span class="k2">)</span><span class="k3">*</span><span class="n">0</span>.<span class="n">01745329251f</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td>      angleStep <span class="k3">=</span> <span class="k2">(</span>PI<span class="k3">/</span>nTimeSliced<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span><span class="n">0</span>.<span class="n">01745329251f</span><span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">96</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">97</td><td>    <span class="k1">if</span> <span class="k2">(</span> nTimeEnd <span class="k3">&lt;</span> nTime <span class="k2">)</span></td></tr><tr><td class="number">98</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">99</td><td>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">100</td><td>      nTime <span class="k3">=</span> nTimeEnd<span class="k2">;</span></td></tr><tr><td class="number">101</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">102</td><td>    angle<span class="k3">+</span><span class="k3">=</span>angleStep<span class="k2">;</span></td></tr><tr><td class="number">103</td><td>    x2 <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>radius<span class="k2">;</span></td></tr><tr><td class="number">104</td><td>    y2 <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>radius<span class="k2">;</span></td></tr><tr><td class="number">105</td><td>    <a href="http://www.allegro.cc/manual/circle" target="_blank"><span class="a">circle</span></a><span class="k2">(</span>pBmp,x,y,radius,color1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">106</td><td>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>pBmp,x,y,x<span class="k3">+</span>x2,y-y2,color2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">107</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">0</span>,color2,<span class="s">"Donald C Freeman June 29th, 2007"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">108</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">8</span>,color2,<span class="s">"Simple 'sweep' program to simulate functionality of angular timer."</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">16</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">100</span>,<span class="n">200</span>,<span class="n">255</span><span class="k2">)</span>,<span class="s">"[Spacebar] &lt;Reset Timer&gt;"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">110</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">24</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">100</span>,<span class="n">200</span>,<span class="n">255</span><span class="k2">)</span>,<span class="s">"[Up] &lt;Shorten Timer&gt;"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">111</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">32</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">100</span>,<span class="n">200</span>,<span class="n">255</span><span class="k2">)</span>,<span class="s">"[Down] &lt;Lengthen Timer&gt;"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">112</td><td>    textprintf<span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>, <span class="n">40</span>,color1,<span class="s">"angle: %f, angleStep: %f, time: %i, timeEnd: %i"</span>,</td></tr><tr><td class="number">113</td><td>      angle,angleStep,nTime,nTimeEnd<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">114</td><td>    <span class="c">/////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">115</td><td>    <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a><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">116</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>pBmp,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,pBmp-&gt;w,pBmp-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">117</td><td>    <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a><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">118</td><td>    <span class="c">/////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">119</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">120</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">121</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>pBmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">122</td><td>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">123</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">124</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">125</td><td>  <span class="c">/////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">126</td><td><span class="k2">}</span></td></tr><tr><td class="number">127</td><td><span class="c">/////////////////////////////////////////////////////////////////////////////</span></td></tr></tbody></table></div></div><p>

Be nice about the code please, it is only a quick and dirty test...::)<br />As always, thanks to all of you.;D
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Don Freeman)</author>
		<pubDate>Sat, 30 Jun 2007 09:56:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Also, any suggestions on how to simplify the math would be great.
</p></div></div><p>
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> current_time <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// increment this by one in every cycle until done</span>
<span class="k1">int</span> end_time <span class="k3">=</span> SOME_VALUE<span class="k2">;</span>

<a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>buffer, center_x, center_y, center_x <span class="k3">+</span> radius<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="k2">(</span><span class="k1">double</span><span class="k2">)</span>current_time<span class="k3">/</span>end_time<span class="k2">)</span><span class="k3">*</span><span class="n">2</span>.<span class="n">0</span><span class="k3">*</span>M_PI<span class="k2">)</span>, center_y <span class="k3">+</span> radius<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="k2">(</span><span class="k1">double</span><span class="k2">)</span>current_time<span class="k3">/</span>end_time<span class="k2">)</span><span class="k3">*</span><span class="n">2</span>.<span class="n">0</span><span class="k3">*</span>M_PI<span class="k2">)</span>, color<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Does anyone have any ideas / suggestions on how to write this to do the<br />&#39;sweep&#39; but with a rect instead of a circle?
</p></div></div><p>
The easiest way? Just use a sub bitmap.</p><p>But before you write another line of code, I suggest you enable compiler warnings. Also, use a non-ancient version of Allegro. And <b>stop inserting manual linebreaks into your posts</b>. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sat, 30 Jun 2007 19:40:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Another way is to use the <tt>tan()</tt> of the angle to find out how far along each edge you have to draw the line.</p><p>The following assumes that the angle of 0 corresponds to a line pointing rightwards and the line rotates anticlockwise as the angle increases.</p><p>You will have to divide the rectangle into four quadrants because for each quadrant (note that these quadrants do not correspond to what are usually referred to as quadrants when discussing trigonometric functions), you want to trace round a different edge of the rectangle. To find the angular border to separate the quadrants, work out the inverse tangent of the horizontal distance from the rectangle-centre to the rectangle-edge divided by the vertical distance from the rectangle-centre to the rectangle-edge (this can be done using the <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html"><tt>atan2()</tt></a>) function. This will give you the boundry angle (<tt>B</tt>). That is, one quadrant boundry is at <tt>B</tt>, the other at <tt>2pi-B</tt>, one is at <tt>pi+B</tt> and the last one at <tt>pi-B</tt>.</p><p>If the angle lies in the first quadrant, multiply the horizontal distance from the rectangle-centre to the rectangle-edge by the <a href="http://www.delorie.com/djgpp/doc/libc/libc_803.html"><tt>tan()</tt></a> of the angle to get the Y coordinate on the rectangle&#39;s right edge to draw the line to. If in the second quadrant, multiply the vertical distance from the rectangle-centre to the rectangle-edge by tan((pi/2)-angle). For the third quadrant, -horizontal_distance * tan(angle), and for the fourth, -vertical_distance * tan(-(pi/2)-angle). Note that this is unchecked.</p><p>AE.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Andrei Ellman)</author>
		<pubDate>Sun, 01 Jul 2007 22:01:51 +0000</pubDate>
	</item>
</rss>
