{"id":307,"date":"2009-06-05T08:57:23","date_gmt":"2009-06-05T15:57:23","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=1501"},"modified":"2009-06-05T08:57:23","modified_gmt":"2009-06-05T15:57:23","slug":"distance-line-gradient","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=307","title":{"rendered":"Distance Line Gradient"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\n&#x5B;SWF(width=600,height=500,frameRate=30)]\r\nvar canvas:BitmapData=new BitmapData(400,400,false,0x000000);\r\naddChild(new Bitmap(canvas));\r\n\r\nvar size:Number=canvas.width*canvas.height;\r\nvar w:Number=canvas.width;\r\nvar pix:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size);\r\n \r\naddEventListener(Event.ENTER_FRAME, onLoop);\r\nfunction onLoop(evt:Event):void {\r\n\tcanvas.lock();\r\n\t\t\r\n \tvar i:int = size;\r\n\tvar x1:Number=mouseX;\r\n\tvar y1:Number=mouseY;\r\n\tvar x2:Number=250;\r\n\tvar y2:Number=250;\r\n\tvar dx:Number=x2-x1;\r\n\tvar dy:Number=y2-y1;\r\n\tvar denom:Number =  1\/(dx * dx + dy * dy);\r\n\tif (dx==0&amp;&amp;dy==0) {\r\n\t\t\tx2+=1;\r\n\t\t\ty2+=1;\r\n\t\t\tdx=dy=1;\r\n\t}\r\n\r\n\twhile( --i &gt; -1 ){\r\n\t\tvar xp:int= i % w;\r\n\t\tvar yp:int = i \/ w;\r\n\t\tvar u:Number = ((xp - x1) * dx + (yp - y1) * dy) * denom;\r\n\r\n\t\tvar closestX:Number;\r\n\t\tvar closestY:Number;\r\n\t\tif (u&lt;0) {\r\n\t\t\tclosestX=x1;\r\n\t\t\tclosestY=y1;\r\n\t\t} else if (u &gt; 1) {\r\n\t\t\tclosestX=x2;\r\n\t\t\tclosestY=y2;\r\n\t\t} else {\r\n\t\t\tclosestX=x1+u*dx;\r\n\t\t\tclosestY=y1+u*dy;\r\n\t\t}\r\n\t\tvar dfx:Number=closestX-xp;\r\n\t\tvar dfy:Number=closestY-yp;\r\n\t\tvar d:Number=255-Math.sqrt(dfx*dfx+dfy*dfy);\r\n\t\tif (d&lt;0) d=0;\r\n\t\t pix&#x5B;i]=uint(d);\r\n\t}\r\n\tcanvas.setVector(canvas.rect, pix);\r\n\tcanvas.unlock();\r\n}\r\n<\/pre>\n<p>This didn&#8217;t come out as interesting as I thought it would for some reason &#8211; just used the technique from the last two posts to draw a gradient. Event though it&#8217;s visually boring, it does show how I went about inlining the function from yesterday&#8230; so I figured I&#8217;d post it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#x5B;SWF(width=600,height=500,frameRate=30)] var canvas:BitmapData=new BitmapData(400,400,false,0x000000); addChild(new Bitmap(canvas)); var size:Number=canvas.width*canvas.height; var w:Number=canvas.width; var pix:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size); addEventListener(Event.ENTER_FRAME, onLoop); function onLoop(evt:Event):void { canvas.lock(); var i:int = size; var x1:Number=mouseX; var y1:Number=mouseY; var x2:Number=250; var y2:Number=250; var dx:Number=x2-x1; var dy:Number=y2-y1; var denom:Number = 1\/(dx * dx + dy * dy); if (dx==0&amp;&amp;dy==0) { x2+=1; y2+=1; dx=dy=1; } while( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,114,79],"tags":[3,14,4],"class_list":["post-307","post","type-post","status-publish","format-standard","hentry","category-bitmapdata","category-graphics-algorithms","category-vector","tag-actionscript","tag-as3","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=307"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/307\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}