{"id":384,"date":"2009-08-19T13:52:49","date_gmt":"2009-08-19T20:52:49","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=2028"},"modified":"2009-08-19T13:52:49","modified_gmt":"2009-08-19T20:52:49","slug":"sierpinski-glitch-texture-1","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=384","title":{"rendered":"Sierpi\u0144ski Glitch Texture #1"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\n&#x5B;SWF(frameRate=60, backgroundColor=0x000000, width=500, height=500)]\r\nvar canvas:BitmapData = new BitmapData(500,500,false, 0x000000);\r\naddChild(new Bitmap(canvas));\r\nvar clone:BitmapData = new BitmapData(500,500,false, 0x000000);\r\nvar canvasRect:Rectangle = canvas.rect;\r\nvar w:int = canvas.width;\r\nvar w2:Number = 1\/w;\r\nvar w10:Number = 1\/(w * 80);\r\nvar convert:Number = Math.PI\/180;\r\nvar size:int = canvas.width * canvas.height;\r\nvar pix:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size, true);\r\nvar gray:ColorMatrixFilter = new ColorMatrixFilter(&#x5B;1, 0.55, 0.55, 0,0,0.55, 0.9, 0.55, 0,0,0.55, 0.55, 0.550,0, 0,0,0,1,0]);\r\nvar m:Matrix = new Matrix();\r\nm.scale(1,-1);\r\nm.translate(0,canvas.height);\r\nvar sin:Number = 0, cos:Number = 0;\r\nvar dx:Number = 0, dy:Number = 0;\r\nvar pnt:Point = new Point();\r\nvar blur:BlurFilter = new BlurFilter(10,10,1);\r\naddEventListener(Event.ENTER_FRAME, onLoop);\r\nfunction onLoop(evt:Event):void {\r\n\tcanvas.lock();\r\n\tdx += (mouseX * 10 - 3000 - dx) \/ 8;\r\n\tdy += (mouseY * 4 - dy) \/ 8;\r\n\tfor (var i:int = 0; i&lt;size; i++){\r\n\t\tvar xp:int = i % w;\r\n\t\tvar yp:int = int(i * w2);\r\n\t\tvar xp2:int = xp &lt;&lt;1;\r\n\t\tvar t:Number;\r\n\t\tt = ((yp|xp) * (xp + dx) *w10) % 6.14687;\r\n\t\t\r\n\t\t\/\/compute sine\r\n\t\t\/\/ technique from http:\/\/lab.polygonal.de\/2007\/07\/18\/fast-and-accurate-sinecosine-approximation\/\r\n\t\t\/\/ by Michael Baczynski\r\n\t\tif (t&lt;0) {\r\n\t\t\tsin=1.27323954*t+.405284735*t*t;\r\n\t\t} else {\r\n\t\t\tsin=1.27323954*t-0.405284735*t*t;\r\n\t\t}\r\n\t\t\/\/ compute cosine\r\n\t\tt = (xp2 + dy) * convert % 6.28;\r\n\t\tt+=1.57079632;\r\n\t\tif (t&gt;3.14159265) {\r\n\t\t\tt-=6.28318531;\r\n\t\t}\r\n\t\tif (t&lt;0) {\r\n\t\t\tcos=1.27323954*t+0.405284735*t*t;\r\n\t\t} else {\r\n\t\t\tcos=1.27323954*t-0.405284735*t*t;\r\n\t\t}\r\n\t\tvar c1:int = 31 * (sin - cos);\r\n\t\tif (c1 &lt;0) c1 = 256 - c1;\r\n\t\tc1 = (c1 &lt;&lt;3 | c1) ;\r\n\t\tpix&#x5B;i] = c1 &lt;&lt;15 | c1 &lt;&lt;8 | c1;\r\n\t}\r\n\tcanvas.setVector(canvasRect, pix);\r\n\tclone.copyPixels(canvas, canvasRect, pnt);\r\n\tcanvas.draw(clone, m, null, BlendMode.SUBTRACT);\r\n\tclone.copyPixels(canvas, canvasRect, pnt);\r\n\tclone.applyFilter(clone, canvasRect, pnt, blur);\r\n\tcanvas.draw(clone, null, null, BlendMode.ADD);\r\n\tcanvas.unlock();\r\n}\r\n<\/pre>\n<p>More strange real-time texture generation. This one is particularly glitchy looking with hints of Sierpi\u0144ski.<\/p>\n<p><a href=\"http:\/\/wonderfl.net\/code\/2eda1bf3f26ac212d3c9b98b551ce4868a3a9512\" target=\"blank\"><br \/>\nCheck out the swf at wonderfl.net&#8230;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/actionsnippet.com\/wp-content\/serpglitch.gif\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#x5B;SWF(frameRate=60, backgroundColor=0x000000, width=500, height=500)] var canvas:BitmapData = new BitmapData(500,500,false, 0x000000); addChild(new Bitmap(canvas)); var clone:BitmapData = new BitmapData(500,500,false, 0x000000); var canvasRect:Rectangle = canvas.rect; var w:int = canvas.width; var w2:Number = 1\/w; var w10:Number = 1\/(w * 80); var convert:Number = Math.PI\/180; var size:int = canvas.width * canvas.height; var pix:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size, true); var gray:ColorMatrixFilter = [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3,14,4],"class_list":["post-384","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-actionscript","tag-as3","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/384","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=384"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/384\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}