<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Tim Tait</title>
    <link>http://timtait.co.nz</link>
    <description>pew pew pew</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#3e96f181c" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/timtait" /><feedburner:info uri="timtait" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
      <pubDate>Mon, 21 Feb 2011 02:44:00 -0800</pubDate>
      <title>HTML5 canvas fancy Mandelbrot Set </title>
      <link>http://timtait.co.nz/html5-canvas-fancy-mandelbrot-set</link>
      <guid>http://timtait.co.nz/html5-canvas-fancy-mandelbrot-set</guid>
      <description>
        <![CDATA[<p>
	<p>Added a few buttons and fields to the Mandelbrot Set generator.</p>
<p>I'll add some decent zooming / panning functionality one day.</p>
<p><span style="color: #ff0000;">Warning: it may take a few seconds.</span></p>
<p><iframe src="http://tim-tait.appspot.com/html5demos/mandelbrot_set_fancy.html" height="480" width="515"> </iframe></p>
	
</p>

<p><a href="http://timtait.co.nz/html5-canvas-fancy-mandelbrot-set">Permalink</a> 

	| <a href="http://timtait.co.nz/html5-canvas-fancy-mandelbrot-set#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/507997/2eec67fa648a9fcdfcfeb13e90b3e6ad.jpeg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5emluwidDJBv</posterous:profileUrl>
        <posterous:firstName>Tim</posterous:firstName>
        <posterous:lastName>Tait</posterous:lastName>
        <posterous:nickName>Tim</posterous:nickName>
        <posterous:displayName>Tim Tait</posterous:displayName>
      </posterous:author>
    </item>
    <item>
      <pubDate>Wed, 16 Feb 2011 18:30:00 -0800</pubDate>
      <title>HTML5 canvas Mandelbrot Set</title>
      <link>http://timtait.co.nz/43228745</link>
      <guid>http://timtait.co.nz/43228745</guid>
      <description>
        <![CDATA[<p>
	<p>After playing around with the HTML5 canvas element I had a quick go at rendering a Mandelbrot Set. Why? because they look fucking awesome.</p>
<p><span style="color: #ff0000;">Warning: it may take a few seconds.</span></p>
<p><iframe src="http://tim-tait.appspot.com/html5demos/mandelbrot_set.html" height="230" width="370"> </iframe></p>
<p>Great success.</p>
<p></p>
<p><div class="data type-html">
      <table class="lines" cellspacing="0" cellpadding="0">
        <tr>
          <td>
            <pre class="line_numbers"><span rel="#L1" id="L1">1</span>
<span rel="#L2" id="L2">2</span>
<span rel="#L3" id="L3">3</span>
<span rel="#L4" id="L4">4</span>
<span rel="#L5" id="L5">5</span>
<span rel="#L6" id="L6">6</span>
<span rel="#L7" id="L7">7</span>
<span rel="#L8" id="L8">8</span>
<span rel="#L9" id="L9">9</span>
<span rel="#L10" id="L10">10</span>
<span rel="#L11" id="L11">11</span>
<span rel="#L12" id="L12">12</span>
<span rel="#L13" id="L13">13</span>
<span rel="#L14" id="L14">14</span>
<span rel="#L15" id="L15">15</span>
<span rel="#L16" id="L16">16</span>
<span rel="#L17" id="L17">17</span>
<span rel="#L18" id="L18">18</span>
<span rel="#L19" id="L19">19</span>
<span rel="#L20" id="L20">20</span>
<span rel="#L21" id="L21">21</span>
<span rel="#L22" id="L22">22</span>
<span rel="#L23" id="L23">23</span>
<span rel="#L24" id="L24">24</span>
<span rel="#L25" id="L25">25</span>
<span rel="#L26" id="L26">26</span>
<span rel="#L27" id="L27">27</span>
<span rel="#L28" id="L28">28</span>
<span rel="#L29" id="L29">29</span>
<span rel="#L30" id="L30">30</span>
<span rel="#L31" id="L31">31</span>
<span rel="#L32" id="L32">32</span>
<span rel="#L33" id="L33">33</span>
<span rel="#L34" id="L34">34</span>
<span rel="#L35" id="L35">35</span>
<span rel="#L36" id="L36">36</span>
<span rel="#L37" id="L37">37</span>
<span rel="#L38" id="L38">38</span>
<span rel="#L39" id="L39">39</span>
<span rel="#L40" id="L40">40</span>
<span rel="#L41" id="L41">41</span>
<span rel="#L42" id="L42">42</span>
<span rel="#L43" id="L43">43</span>
<span rel="#L44" id="L44">44</span>
<span rel="#L45" id="L45">45</span>
<span rel="#L46" id="L46">46</span>
<span rel="#L47" id="L47">47</span>
<span rel="#L48" id="L48">48</span>
<span rel="#L49" id="L49">49</span>
<span rel="#L50" id="L50">50</span>
<span rel="#L51" id="L51">51</span>
<span rel="#L52" id="L52">52</span>
<span rel="#L53" id="L53">53</span>
<span rel="#L54" id="L54">54</span>
<span rel="#L55" id="L55">55</span>
<span rel="#L56" id="L56">56</span>
<span rel="#L57" id="L57">57</span>
<span rel="#L58" id="L58">58</span>
<span rel="#L59" id="L59">59</span>
<span rel="#L60" id="L60">60</span>
<span rel="#L61" id="L61">61</span>
</pre>
          </td>
          <td width="100%">
                <div class="highlight"><pre /><div class="line" id="LC1"><span class="cp">&lt;!doctype html&gt;</span></div><div class="line" id="LC2"><br /></div><div class="line" id="LC3"><span class="nt">&lt;canvas</span> <span class="na">id=</span><span class="s">&quot;c&quot;</span> <span class="na">width=</span><span class="s">&quot;350&quot;</span> <span class="na">height=</span><span class="s">&quot;200&quot;</span> <span class="na">style=</span><span class="s">&quot;border:1px solid #000;&quot;</span><span class="nt">&gt;</span></div><div class="line" id="LC4"><br /></div><div class="line" id="LC5"><span class="nt">&lt;script&gt;</span></div><div class="line" id="LC6">	<span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">&quot;c&quot;</span><span class="p">);</span></div><div class="line" id="LC7">	<span class="kd">var</span> <span class="nx">ctx</span> <span class="o">=</span> <span class="nx">c</span><span class="p">.</span><span class="nx">getContext</span><span class="p">(</span><span class="s2">&quot;2d&quot;</span><span class="p">);</span></div><div class="line" id="LC8"><br /></div><div class="line" id="LC9">	<span class="kd">var</span> <span class="nx">x0</span><span class="p">,</span><span class="nx">y0</span><span class="p">,</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">,</span><span class="nx">xtemp</span><span class="p">,</span><span class="nx">iteration</span><span class="p">,</span><span class="nx">cp</span><span class="p">;</span></div><div class="line" id="LC10">	<span class="kd">var</span> <span class="nx">max_iteration</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span></div><div class="line" id="LC11"><br /></div><div class="line" id="LC12">	<span class="kd">var</span> <span class="nx">xi0</span> <span class="o">=</span> <span class="o">-</span><span class="mf">2.5</span><span class="p">;</span></div><div class="line" id="LC13">	<span class="kd">var</span> <span class="nx">xi1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class="line" id="LC14">	<span class="kd">var</span> <span class="nx">yi0</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class="line" id="LC15">	<span class="kd">var</span> <span class="nx">yi1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class="line" id="LC16"><br /></div><div class="line" id="LC17">	<span class="kd">var</span> <span class="nx">difx</span> <span class="o">=</span> <span class="nx">xi1</span><span class="o">-</span><span class="nx">xi0</span><span class="p">;</span></div><div class="line" id="LC18">	<span class="kd">var</span> <span class="nx">dify</span> <span class="o">=</span> <span class="nx">yi1</span><span class="o">-</span><span class="nx">yi0</span><span class="p">;</span></div><div class="line" id="LC19"><br /></div><div class="line" id="LC20">	<span class="nx">c</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="nx">makeMandelbrot</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class="line" id="LC21"><br /></div><div class="line" id="LC22">	<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillText</span><span class="p">(</span><span class="s2">&quot;Click here to draw the Mandelbrot Set&quot;</span><span class="p">,</span> <span class="mi">85</span><span class="p">,</span> <span class="mi">100</span><span class="p">);</span></div><div class="line" id="LC23"><br /></div><div class="line" id="LC24">	<span class="kd">function</span> <span class="nx">makeMandelbrot</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC25">		<span class="nx">c</span><span class="p">.</span><span class="nx">removeEventListener</span><span class="p">(</span><span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="nx">makeMandelbrot</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class="line" id="LC26"><br /></div><div class="line" id="LC27">		<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">c</span><span class="p">.</span><span class="nx">width</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC28">			<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="o">&lt;</span> <span class="nx">c</span><span class="p">.</span><span class="nx">height</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC29"><br /></div><div class="line" id="LC30">				<span class="nx">x0</span> <span class="o">=</span> <span class="nx">xi0</span><span class="o">+</span><span class="p">(</span><span class="nx">difx</span><span class="o">*</span><span class="p">(</span><span class="nx">i</span><span class="o">/</span><span class="nx">c</span><span class="p">.</span><span class="nx">width</span><span class="p">));</span><span class="c1">//scaled x co-ordinate of pixel (must be scaled to lie somewhere in the interval (-2.5 to 1)</span></div><div class="line" id="LC31">				<span class="nx">y0</span> <span class="o">=</span> <span class="nx">yi0</span><span class="o">+</span><span class="p">(</span><span class="nx">dify</span><span class="o">*</span><span class="p">(</span><span class="nx">j</span><span class="o">/</span><span class="nx">c</span><span class="p">.</span><span class="nx">height</span><span class="p">));</span><span class="c1">//scaled y co-ordinate of pixel (must be scaled to lie somewhere in the interval (-1, 1)</span></div><div class="line" id="LC32"><br /></div><div class="line" id="LC33">				<span class="nx">x</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class="line" id="LC34">				<span class="nx">y</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class="line" id="LC35"><br /></div><div class="line" id="LC36">				<span class="nx">iteration</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class="line" id="LC37"><br /></div><div class="line" id="LC38">				<span class="k">while</span> <span class="p">(</span> <span class="nx">x</span><span class="o">*</span><span class="nx">x</span> <span class="o">+</span> <span class="nx">y</span><span class="o">*</span><span class="nx">y</span> <span class="o">&lt;=</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="mi">2</span><span class="p">)</span>  <span class="o">&amp;&amp;</span>  <span class="nx">iteration</span> <span class="o">&lt;</span> <span class="nx">max_iteration</span> <span class="p">)</span></div><div class="line" id="LC39">				<span class="p">{</span></div><div class="line" id="LC40">					<span class="nx">xtemp</span> <span class="o">=</span> <span class="nx">x</span><span class="o">*</span><span class="nx">x</span> <span class="o">-</span> <span class="nx">y</span><span class="o">*</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">x0</span><span class="p">;</span></div><div class="line" id="LC41">					<span class="nx">y</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="nx">x</span><span class="o">*</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">y0</span><span class="p">;</span></div><div class="line" id="LC42"><br /></div><div class="line" id="LC43">					<span class="nx">x</span> <span class="o">=</span> <span class="nx">xtemp</span><span class="p">;</span></div><div class="line" id="LC44"><br /></div><div class="line" id="LC45">					<span class="nx">iteration</span><span class="o">++</span><span class="p">;</span></div><div class="line" id="LC46">				<span class="p">}</span></div><div class="line" id="LC47"><br /></div><div class="line" id="LC48">				<span class="nx">x0</span> <span class="o">=</span> <span class="p">((</span><span class="mf">2.5</span><span class="o">+</span><span class="nx">x0</span><span class="p">)</span><span class="o">/</span><span class="nx">difx</span><span class="p">)</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">width</span><span class="p">;</span></div><div class="line" id="LC49">				<span class="nx">y0</span> <span class="o">=</span> <span class="p">((</span><span class="mi">1</span><span class="o">+</span><span class="nx">y0</span><span class="p">)</span><span class="o">/</span><span class="nx">dify</span><span class="p">)</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">height</span><span class="p">;</span></div><div class="line" id="LC50"><br /></div><div class="line" id="LC51">				<span class="k">if</span> <span class="p">(</span> <span class="nx">iteration</span> <span class="o">==</span> <span class="nx">max_iteration</span> <span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC52">					<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s2">&quot;rgb(0,0,0)&quot;</span><span class="p">;</span></div><div class="line" id="LC53">				<span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class="line" id="LC54">					<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s2">&quot;rgb(255,255,255)&quot;</span><span class="p">;</span></div><div class="line" id="LC55">				<span class="p">}</span></div><div class="line" id="LC56"><br /></div><div class="line" id="LC57">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillRect</span><span class="p">(</span><span class="nx">x0</span><span class="p">,</span><span class="nx">y0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>			</div><div class="line" id="LC58">			<span class="p">}</span></div><div class="line" id="LC59">		<span class="p">}</span>		</div><div class="line" id="LC60">	<span class="p">}</span></div><div class="line" id="LC61"><span class="nt">&lt;/script&gt;</span></div></pre></div>
          </td>
        </tr>
      </table>
  </div></p>
	
</p>

<p><a href="http://timtait.co.nz/43228745">Permalink</a> 

	| <a href="http://timtait.co.nz/43228745#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/507997/2eec67fa648a9fcdfcfeb13e90b3e6ad.jpeg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5emluwidDJBv</posterous:profileUrl>
        <posterous:firstName>Tim</posterous:firstName>
        <posterous:lastName>Tait</posterous:lastName>
        <posterous:nickName>Tim</posterous:nickName>
        <posterous:displayName>Tim Tait</posterous:displayName>
      </posterous:author>
    </item>
    <item>
      <pubDate>Mon, 14 Feb 2011 20:00:00 -0800</pubDate>
      <title>HTML5 canvas shapes</title>
      <link>http://timtait.co.nz/43101237</link>
      <guid>http://timtait.co.nz/43101237</guid>
      <description>
        <![CDATA[<p>
	<p>Yesterday I was in a workshop with <a href="http://diveintohtml5.org" target="_blank">Mark Pilgrim</a> on HTML 5, I was mucking around with the Canvas and ended up with this. <a href="http://tim-tait.appspot.com/html5demos/autoshapes.html" target="_blank">It's quite cool in full screen</a>.</p>
<p><iframe src="http://tim-tait.appspot.com/html5demos/autoshapes.html" height="300" width="100%"> </iframe>&nbsp;</p>
<p></p>
<p><div class="data type-html">
      <table class="lines" cellspacing="0" cellpadding="0">
        <tr>
          <td>
            <pre class="line_numbers"><span rel="#L1" id="L1">1</span>
<span rel="#L2" id="L2">2</span>
<span rel="#L3" id="L3">3</span>
<span rel="#L4" id="L4">4</span>
<span rel="#L5" id="L5">5</span>
<span rel="#L6" id="L6">6</span>
<span rel="#L7" id="L7">7</span>
<span rel="#L8" id="L8">8</span>
<span rel="#L9" id="L9">9</span>
<span rel="#L10" id="L10">10</span>
<span rel="#L11" id="L11">11</span>
<span rel="#L12" id="L12">12</span>
<span rel="#L13" id="L13">13</span>
<span rel="#L14" id="L14">14</span>
<span rel="#L15" id="L15">15</span>
<span rel="#L16" id="L16">16</span>
<span rel="#L17" id="L17">17</span>
<span rel="#L18" id="L18">18</span>
<span rel="#L19" id="L19">19</span>
<span rel="#L20" id="L20">20</span>
<span rel="#L21" id="L21">21</span>
<span rel="#L22" id="L22">22</span>
<span rel="#L23" id="L23">23</span>
<span rel="#L24" id="L24">24</span>
<span rel="#L25" id="L25">25</span>
<span rel="#L26" id="L26">26</span>
<span rel="#L27" id="L27">27</span>
<span rel="#L28" id="L28">28</span>
<span rel="#L29" id="L29">29</span>
<span rel="#L30" id="L30">30</span>
<span rel="#L31" id="L31">31</span>
<span rel="#L32" id="L32">32</span>
<span rel="#L33" id="L33">33</span>
<span rel="#L34" id="L34">34</span>
<span rel="#L35" id="L35">35</span>
<span rel="#L36" id="L36">36</span>
<span rel="#L37" id="L37">37</span>
<span rel="#L38" id="L38">38</span>
<span rel="#L39" id="L39">39</span>
<span rel="#L40" id="L40">40</span>
<span rel="#L41" id="L41">41</span>
<span rel="#L42" id="L42">42</span>
<span rel="#L43" id="L43">43</span>
<span rel="#L44" id="L44">44</span>
<span rel="#L45" id="L45">45</span>
<span rel="#L46" id="L46">46</span>
<span rel="#L47" id="L47">47</span>
<span rel="#L48" id="L48">48</span>
<span rel="#L49" id="L49">49</span>
<span rel="#L50" id="L50">50</span>
<span rel="#L51" id="L51">51</span>
<span rel="#L52" id="L52">52</span>
<span rel="#L53" id="L53">53</span>
<span rel="#L54" id="L54">54</span>
<span rel="#L55" id="L55">55</span>
<span rel="#L56" id="L56">56</span>
<span rel="#L57" id="L57">57</span>
<span rel="#L58" id="L58">58</span>
<span rel="#L59" id="L59">59</span>
<span rel="#L60" id="L60">60</span>
<span rel="#L61" id="L61">61</span>
<span rel="#L62" id="L62">62</span>
<span rel="#L63" id="L63">63</span>
<span rel="#L64" id="L64">64</span>
</pre>
          </td>
          <td width="100%">
                <div class="highlight"><pre /><div class="line" id="LC1"><span class="cp">&lt;!doctype html&gt;</span></div><div class="line" id="LC2"><span class="nt">&lt;style&gt;</span></div><div class="line" id="LC3"><span class="nt">body</span> <span class="p">{</span><span class="k">padding</span><span class="o">:</span><span class="m">0</span><span class="p">;</span><span class="k">margin</span><span class="o">:</span><span class="m">0</span><span class="p">;</span><span class="k">overflow</span><span class="o">:</span><span class="k">hidden</span><span class="p">;}</span></div><div class="line" id="LC4"><span class="nt">&lt;/style&gt;</span></div><div class="line" id="LC5"><br /></div><div class="line" id="LC6"><span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">&quot;controls&quot;</span> <span class="na">style=</span><span class="s">&quot;position:absolute;width:106px;height:95px;background-color:#fff;&quot;</span><span class="nt">&gt;</span></div><div class="line" id="LC7">	<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;checkbox&quot;</span> <span class="na">id=</span><span class="s">&quot;circles&quot;</span> <span class="na">checked=</span><span class="s">&quot;checked&quot;</span> <span class="nt">/&gt;</span>Circles<span class="nt">&lt;br</span> <span class="nt">/&gt;</span></div><div class="line" id="LC8">	<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;checkbox&quot;</span> <span class="na">id=</span><span class="s">&quot;squares&quot;</span> <span class="na">checked=</span><span class="s">&quot;checked&quot;</span> <span class="nt">/&gt;</span>Squares<span class="nt">&lt;br</span> <span class="nt">/&gt;</span></div><div class="line" id="LC9">	<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;button&quot;</span> <span class="na">id=</span><span class="s">&quot;clear&quot;</span> <span class="na">value=</span><span class="s">&quot;Clear&quot;</span> <span class="na">onclick=</span><span class="s">&quot;btnClear();&quot;</span> <span class="nt">/&gt;&lt;br</span> <span class="nt">/&gt;</span></div><div class="line" id="LC10">	<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;button&quot;</span> <span class="na">id=</span><span class="s">&quot;close&quot;</span> <span class="na">value=</span><span class="s">&quot;Hide this panel&quot;</span> <span class="na">onclick=</span><span class="s">&quot;btnClose();&quot;</span> <span class="nt">/&gt;</span></div><div class="line" id="LC11"><span class="nt">&lt;/div&gt;</span></div><div class="line" id="LC12"><span class="nt">&lt;canvas</span> <span class="na">id=</span><span class="s">&quot;c&quot;</span> <span class="na">width=</span><span class="s">&quot;1000&quot;</span> <span class="na">height=</span><span class="s">&quot;1000&quot;</span><span class="nt">&gt;</span></div><div class="line" id="LC13"><br /></div><div class="line" id="LC14"><br /></div><div class="line" id="LC15"><span class="nt">&lt;script&gt;</span></div><div class="line" id="LC16">	<span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">&quot;c&quot;</span><span class="p">);</span></div><div class="line" id="LC17">	<span class="kd">var</span> <span class="nx">ctx</span> <span class="o">=</span> <span class="nx">c</span><span class="p">.</span><span class="nx">getContext</span><span class="p">(</span><span class="s2">&quot;2d&quot;</span><span class="p">);</span></div><div class="line" id="LC18"><br /></div><div class="line" id="LC19">	<span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">onresize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(){</span></div><div class="line" id="LC20">		<span class="nx">resizeCanvas</span><span class="p">();</span></div><div class="line" id="LC21">	<span class="p">}</span></div><div class="line" id="LC22"><br /></div><div class="line" id="LC23">	<span class="nx">resizeCanvas</span><span class="p">();</span></div><div class="line" id="LC24"><br /></div><div class="line" id="LC25">	<span class="kd">var</span> <span class="nx">maxHeight</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span></div><div class="line" id="LC26">	<span class="kd">var</span> <span class="nx">maxWidth</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span></div><div class="line" id="LC27"><br /></div><div class="line" id="LC28">	<span class="kd">function</span> <span class="nx">resizeCanvas</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC29">		<span class="nx">ctx</span><span class="p">.</span><span class="nx">canvas</span><span class="p">.</span><span class="nx">width</span>  <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">innerWidth</span><span class="p">;</span></div><div class="line" id="LC30">		<span class="nx">ctx</span><span class="p">.</span><span class="nx">canvas</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">innerHeight</span><span class="p">;</span></div><div class="line" id="LC31">	<span class="p">}</span></div><div class="line" id="LC32"><br /></div><div class="line" id="LC33">	<span class="kd">function</span> <span class="nx">drawShape</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC34">		<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s2">&quot;rgba(&quot;</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="mi">200</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="mi">200</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="mi">200</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;,&quot;</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="p">;</span>			</div><div class="line" id="LC35">		<span class="k">if</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span> <span class="o">&gt;</span> <span class="p">.</span><span class="mi">5</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC36">			<span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">&quot;squares&quot;</span><span class="p">).</span><span class="nx">checked</span><span class="p">)</span></div><div class="line" id="LC37">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillRect</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">height</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">maxWidth</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">maxHeight</span><span class="p">);</span></div><div class="line" id="LC38">		<span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class="line" id="LC39">			<span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">&quot;circles&quot;</span><span class="p">).</span><span class="nx">checked</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC40">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span></div><div class="line" id="LC41">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">arc</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">c</span><span class="p">.</span><span class="nx">height</span><span class="p">,</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="nx">maxHeight</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">*</span><span class="mi">2</span><span class="p">,</span><span class="kc">true</span><span class="p">);</span></div><div class="line" id="LC42">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">closePath</span><span class="p">();</span></div><div class="line" id="LC43">				<span class="nx">ctx</span><span class="p">.</span><span class="nx">fill</span><span class="p">();</span></div><div class="line" id="LC44">			<span class="p">}</span></div><div class="line" id="LC45">		<span class="p">}</span></div><div class="line" id="LC46">	<span class="p">}</span></div><div class="line" id="LC47"><br /></div><div class="line" id="LC48">	<span class="kd">function</span> <span class="nx">btnClose</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC49">		<span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;controls&#39;</span><span class="p">).</span><span class="nx">style</span><span class="p">.</span><span class="nx">visibility</span> <span class="o">=</span> <span class="s1">&#39;hidden&#39;</span><span class="p">;</span></div><div class="line" id="LC50">	<span class="p">}</span></div><div class="line" id="LC51"><br /></div><div class="line" id="LC52">	<span class="kd">function</span> <span class="nx">btnClear</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC53">		<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s2">&quot;rgb(255,255,255)&quot;</span><span class="p">;</span>			</div><div class="line" id="LC54">		<span class="nx">ctx</span><span class="p">.</span><span class="nx">fillRect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">canvas</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">canvas</span><span class="p">.</span><span class="nx">height</span><span class="p">);</span></div><div class="line" id="LC55">	<span class="p">}</span></div><div class="line" id="LC56"><br /></div><div class="line" id="LC57">	<span class="kd">function</span> <span class="nx">timer</span><span class="p">()</span></div><div class="line" id="LC58">	<span class="p">{</span>	</div><div class="line" id="LC59">		<span class="nx">t</span><span class="o">=</span><span class="nx">setTimeout</span><span class="p">(</span><span class="s2">&quot;timer()&quot;</span><span class="p">,</span><span class="mi">10</span><span class="p">);</span></div><div class="line" id="LC60">		<span class="nx">drawShape</span><span class="p">();</span></div><div class="line" id="LC61">	<span class="p">}</span>	</div><div class="line" id="LC62"><br /></div><div class="line" id="LC63">	<span class="nx">timer</span><span class="p">();</span></div><div class="line" id="LC64"><span class="nt">&lt;/script&gt;</span></div></pre></div>
          </td>
        </tr>
      </table>
  </div></p>
	
</p>

<p><a href="http://timtait.co.nz/43101237">Permalink</a> 

	| <a href="http://timtait.co.nz/43101237#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/507997/2eec67fa648a9fcdfcfeb13e90b3e6ad.jpeg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5emluwidDJBv</posterous:profileUrl>
        <posterous:firstName>Tim</posterous:firstName>
        <posterous:lastName>Tait</posterous:lastName>
        <posterous:nickName>Tim</posterous:nickName>
        <posterous:displayName>Tim Tait</posterous:displayName>
      </posterous:author>
    </item>
  </channel>
</rss>

