{"id":285,"date":"2009-05-15T18:58:41","date_gmt":"2009-05-16T01:58:41","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=1343"},"modified":"2009-05-15T18:58:41","modified_gmt":"2009-05-16T01:58:41","slug":"distance-render","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=285","title":{"rendered":"Distance Render"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\nvar verts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();\r\nvar pVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();\r\nvar uvts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();\r\n\r\nvar hs:Number = 2.3;\r\nvar step:Number = 0.04;\r\n\r\nvar tVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();\r\nvar rVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;();\r\nvar matrix:Matrix3D = new Matrix3D();\r\nmatrix.identity();\r\nmatrix.appendRotation(45,Vector3D.Y_AXIS);\r\nmatrix.appendRotation(45,Vector3D.X_AXIS);\r\nvar inc:int = 0;\r\nvar i:Number, j:Number, k:Number;\r\ni = hs;\r\nwhile( i &gt; -hs){\r\n\tj = hs;\r\n\twhile(j &gt; -hs){\r\n\t\tk = hs;\r\n\t\twhile(k &gt; -hs){\r\n\t\t\ttVerts&#x5B;inc] = -i;\r\n\t\t\tinc++\r\n\t\t\ttVerts&#x5B;inc] = -j;\r\n\t\t\tinc++\r\n\t\t\ttVerts&#x5B;inc] = -k;\r\n\t\t\tinc++\r\n\t\t\tk -= step;\r\n\t\t}\r\n\t\tj -= step;\r\n\t}\r\n\ti -= step;\r\n}\r\n\r\nmatrix.transformVectors(tVerts, rVerts);\r\n \r\nvar vinc:int = 0;\r\ninc = 0\r\nvar R:Number = 1.5;\r\nvar r:Number = .5;\r\nfor (i= -hs; i&lt;hs; i+=step){\r\n\tfor (j = -hs; j&lt;hs; j+=step){\r\n\t\tfor (k = -hs; k&lt;hs; k+=step){\r\n\t\t\tvar vx:Number = rVerts&#x5B;inc] ;\r\n\t\t\tinc++\r\n\t\t\tvar vy:Number = rVerts&#x5B;inc]  ;\r\n\t\t\tinc++\r\n\t\t\tvar vz:Number=  rVerts&#x5B;inc] ;\r\n\t\t\tinc++\r\n\t\t\tvar s:Number = Math.pow(vx  * vx  + vy * vy + vz * vz + R*R - r * r, 2) - 4 * (R * R)*(vx * vx + vy * vy); \r\n\t\t\tif (s &lt;0 &amp;&amp; s &gt; -.5){ \r\n\t\t\t\tverts&#x5B;vinc] = (i * 50);\r\n\t\t\t\tvinc++\r\n\t\t\t\tverts&#x5B;vinc] = (j * 50);\r\n\t\t\t\tvinc++\r\n\t\t\t\tverts&#x5B;vinc] = (k * 50);\r\n\t\t\t\tvinc++\r\n\t\t\t\t  inc += int((hs - k) \/ step) * 3;\r\n\t\t\t\t  k = hs;\r\n\t\t\t }\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar canvas:BitmapData = new BitmapData(400,400,false, 0x000000);\r\naddChild(new Bitmap(canvas));\r\nrender();\r\nfunction render():void{\r\n\tmatrix.identity();\r\n    matrix.appendTranslation(200, 200, 0);\r\n\tUtils3D.projectVectors(matrix, verts, pVerts, uvts);\r\n\tcanvas.lock();\r\n\tcanvas.fillRect(canvas.rect, 0x000000);\r\n\tvar inc:int = 2;\r\n\tvar c:int = 0;\r\n\tvar r:Rectangle = new Rectangle();\r\n\tr.width = r.height = 2;\r\n\tfor (var i:int = 0; i&lt;pVerts.length; i+=2){\r\n\t\t  r.x = pVerts&#x5B;i];\r\n\t\t  r.y = pVerts&#x5B;i + 1];\r\n\t\t  c = Math.max(0,100 - verts&#x5B;inc]);\r\n\t\t  canvas.fillRect(r, c &lt;&lt; 16 | c &lt;&lt; 8 | c);\r\n\t\t  inc += 3; \r\n\t}\r\n\tcanvas.unlock();\r\n}\r\n<\/pre>\n<p>This snippet uses some of the techniques from the last few posts to create a distance render &#8211; this renders the implicit equation for a torus.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>var verts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;(); var pVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;(); var uvts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;(); var hs:Number = 2.3; var step:Number = 0.04; var tVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;(); var rVerts:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;(); var matrix:Matrix3D = new Matrix3D(); matrix.identity(); matrix.appendRotation(45,Vector3D.Y_AXIS); matrix.appendRotation(45,Vector3D.X_AXIS); var inc:int = 0; var i:Number, j:Number, k:Number; i = hs; while( i &gt; [&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,59,114,121,118,25,79],"tags":[3,4],"class_list":["post-285","post","type-post","status-publish","format-standard","hentry","category-bitmapdata","category-color","category-graphics-algorithms","category-math","category-matrix","category-pixel-manipulation","category-vector","tag-actionscript","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/285","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=285"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/285\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}