{"id":2928,"date":"2016-09-10T09:50:22","date_gmt":"2016-09-10T08:50:22","guid":{"rendered":"http:\/\/www.lyceelecorbusier.eu\/p5js\/?p=2928"},"modified":"2016-09-10T09:50:22","modified_gmt":"2016-09-10T08:50:22","slug":"p5-re-code-05","status":"publish","type":"post","link":"https:\/\/www.lyceelecorbusier.eu\/p5js\/?p=2928","title":{"rendered":"\/ p5 \/ re-code 05"},"content":{"rendered":"<p>Bas\u00e9 sur la &#8220;Diamond Theory&#8221; de Steven H Cullinane<\/p>\n\n<!-- iframe plugin v.5.1 wordpress.org\/plugins\/iframe\/ -->\n<iframe src=\"http:\/\/lyceelecorbusier.eu\/p5\/recode\/05-recode\" width=\"780\" height=\"780\" style=\"border: 1px solid #ddd;\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n\n<pre>\/* \r\nPart of the ReCode Project (http:\/\/recodeproject.com)\r\nBased on \"Diamond Theory\" by Steven H Cullinane\r\nOriginally published in \"Computer Graphics and Art\" v2n1, 1977\r\nCopyright (c) 2013 Radames Ajna - OSI\/MIT license (http:\/\/recodeproject\/license).\r\n*\/\r\n\r\n\/* @pjs pauseOnBlur=\"true\"; *\/\r\n\r\nvar bits = [\r\n 0, 1, 0, 1, \r\n 2, 3, 2, 3, \r\n 0, 1, 0, 1, \r\n 2, 3, 2, 3\r\n];\r\n\r\nvar lsize = 10;\r\n\r\nfunction setup() {\r\n createCanvas(int(lsize*4+100)*5, int(lsize*4+100)*5);\r\n background(255);\r\n smooth();\r\n redraw();\r\n noStroke();\r\n}\r\n\r\nfunction draw() { \r\n background(255);\r\n for (var i=0; i&lt;10; i++) {\r\n for (var j=0; j&lt;10; j++) {\r\n randss();\r\n push();\r\n translate(i*(width\/lsize)+lsize*3, j*(height\/lsize)+lsize*3);\r\n drawTriangle(bits);\r\n pop();\r\n }\r\n }\r\n randss();\r\n if (frameCount&gt;50) {\r\n noLoop();\r\n }\r\n}\r\n\r\nfunction drawTriangle(bits) {\r\n push();\r\n translate(-lsize*4\/2, -lsize*4\/2);\r\n for (var x=0;x&lt;4;x++) {\r\n for (var y=0;y&lt;4;y++) {\r\n var i = x + y*4;\r\n \/\/ pushStyle();\r\n fill(0);\r\n push();\r\n translate(x*lsize, y*lsize);\r\n beginShape(TRIANGLES);\r\n switch(bits[i]) {\r\n case 0:\r\n \/\/ bottom right\r\n \/\/triangle(lsize, lsize, 0, lsize, lsize, 0);\r\n vertex(lsize, lsize);\r\n vertex(0, lsize);\r\n vertex(lsize, 0);\r\n break;\r\n case 1:\r\n \/\/\/bottom left\r\n \/\/triangle(0, 0, 0, lsize, lsize, lsize);\r\n vertex(0, 0);\r\n vertex(0, lsize);\r\n vertex(lsize, lsize);\r\n break;\r\n case 2:\r\n \/\/top right\r\n \/\/triangle(0, 0, lsize, 0, lsize, lsize);\r\n vertex(0, 0);\r\n vertex(lsize, 0);\r\n vertex(lsize, lsize);\r\n break;\r\n case 3:\r\n \/\/top left\r\n \/\/triangle(0, 0, lsize, 0, 0, lsize);\r\n vertex(0, 0);\r\n vertex(lsize, 0);\r\n vertex(0, lsize);\r\n break;\r\n }\r\n endShape(CLOSE);\r\n \/\/popStyle();\r\n pop();\r\n }\r\n }\r\n pop();\r\n}\r\n\/*leva l1 para l2 *\/\r\nfunction transposeRow(bits, r0, r1) {\r\n var temp = [4];\r\n \/\/temp[i] = new int[4];\r\n for (var x=0;x&lt;4;x++) {\r\n \/\/keep the values from row r0 on temp\r\n var i = x + r0*4;\r\n temp[x] = bits[i];\r\n \/\/ put on row r0 values from row r1\r\n var i2 = x + r1*4;\r\n bits[i] = bits[i2];\r\n \/\/put on row r1 values from r0 i.e. from temp\r\n bits[i2] = temp[x];\r\n }\r\n}\r\n\r\nfunction transposeColumn(bits, c0, c1) {\r\n var temp = [4];\r\n for (var y=0;y&lt;4;y++) {\r\n \/\/keep the values from column c1 on temp\r\n var i = c0 + y*4;\r\n temp[y] = bits[i];\r\n \/\/put on column c0 values from column c1\r\n var i2 = c1 + y*4;\r\n bits[i] = bits[i2];\r\n \/\/put on column c1 values from column c0 i.e. temp\r\n bits[i2] = temp[y];\r\n }\r\n}\r\n\r\nfunction transposeQuadrant(bits, q0, q1) {\r\n var temp = [4];\r\n \/\/given a q0 - quadrant 0,1,2,3 \r\n \/\/ |0|1|\r\n \/\/ |2|3|\r\n \/\/returns x,y initial coordinates \r\n \/\/ |00|10|20|30|\r\n \/\/ |01|11|21|31|\r\n \/\/ |02|12|22|32|\r\n \/\/ |03|13|23|33| \r\n var x0q0 = (q0%2)*2;\r\n var y0q0;\r\n if (q0&gt;1) {\r\n y0q0 =2;\r\n } else {\r\n y0q0 =0;\r\n }\r\n var x0q1 = (q1%2)*2;\r\n var y0q1;\r\n if (q1&gt;1) {\r\n y0q1 =2;\r\n } else {\r\n y0q1 =0;\r\n }\r\n var c=0; \r\n for (var i=0;i&lt;2;i++) {\r\n for (var j=0;j&lt;2;j++) {\r\n temp[c] = bits[x0q0+i + (y0q0+j)*4];\r\n bits[x0q0+i + (y0q0+j)*4] = bits[x0q1+i + (y0q1+j)*4];\r\n bits[x0q1+i + (y0q1+j)*4] = temp[c];\r\n c++;\r\n }\r\n }\r\n}\r\n\r\nfunction randss() {\r\n transposeRow(bits, int(random(0, 4)), int(random(0, 4)));\r\n transposeColumn(bits, int(random(0, 4)), int(random(0, 4)));\r\n transposeQuadrant(bits, int(random(0, 4)), int(random(0, 4)));\r\n}\r\n\r\nfunction mousePressed() {\r\n randss();\r\n redraw();\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Bas\u00e9 sur la &#8220;Diamond Theory&#8221; de Steven H Cullinane \/* Part of the ReCode Project (http:\/\/recodeproject.com) Based on &#8220;Diamond Theory&#8221; by Steven H Cullinane Originally published in &#8220;Computer Graphics and Art&#8221; v2n1, 1977 Copyright (c) 2013 Radames Ajna&#8230; <a class=\"read-more\" href=\"https:\/\/www.lyceelecorbusier.eu\/p5js\/?p=2928\">Lire la suite&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":2929,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2928"}],"collection":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2928"}],"version-history":[{"count":1,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2928\/revisions"}],"predecessor-version":[{"id":2930,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2928\/revisions\/2930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/media\/2929"}],"wp:attachment":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}