{"id":2611,"date":"2016-02-14T22:39:24","date_gmt":"2016-02-14T21:39:24","guid":{"rendered":"http:\/\/www.lyceelecorbusier.eu\/p5js\/?p=2611"},"modified":"2016-09-09T17:00:43","modified_gmt":"2016-09-09T16:00:43","slug":"p5-js-p_2_3_1_01","status":"publish","type":"post","link":"https:\/\/www.lyceelecorbusier.eu\/p5js\/?p=2611","title":{"rendered":"\/ p5.js \/ P_2_3_1_01"},"content":{"rendered":"<p style=\"text-align: center;\"><!--more-->\n<!-- iframe plugin v.5.1 wordpress.org\/plugins\/iframe\/ -->\n<iframe src=\"http:\/\/lyceelecorbusier.eu\/p5\/generative\/P_2_3_1_01\" width=\"780\" height=\"780\" style=\"border: 1px solid #ddd;\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n\n<pre style=\"text-align: left;\">\/\/ P_2_3_1_01\r\n\/\/\r\n\/\/ Generative Gestaltung, ISBN: 978-3-87439-759-9\r\n\/\/ First Edition, Hermann Schmidt, Mainz, 2009\r\n\/\/ Hartmut Bohnacker, Benedikt Gross, Julia Laub, Claudius Lazzeroni\r\n\/\/ Copyright 2009 Hartmut Bohnacker, Benedikt Gross, Julia Laub, Claudius Lazzeroni\r\n\/\/\r\n\/\/ http:\/\/www.generative-gestaltung.de\r\n\/\/\r\n\/\/ Licensed under the Apache License, Version 2.0 (the \"License\");\r\n\/\/ you may not use this file except in compliance with the License.\r\n\/\/ You may obtain a copy of the License at http:\/\/www.apache.org\/licenses\/LICENSE-2.0\r\n\/\/ Unless required by applicable law or agreed to in writing, software\r\n\/\/ distributed under the License is distributed on an \"AS IS\" BASIS,\r\n\/\/ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n\/\/ See the License for the specific language governing permissions and\r\n\/\/ limitations under the License. \r\n\r\n\/**\r\n\u00a0* draw tool. draw with a rotating line. \r\n\u00a0* \r\n\u00a0* MOUSE\r\n\u00a0* drag\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : draw\r\n\u00a0* \r\n\u00a0* KEYS\r\n\u00a0* 1-4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : switch default colors\r\n\u00a0* del, backspace\u00a0\u00a0\u00a0\u00a0\u00a0 : clear screen\r\n\u00a0* d\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : reverse direction and mirrow angle \r\n\u00a0* space\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : new random color\r\n\u00a0* arrow left\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : rotaion speed -\r\n\u00a0* arrow right\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : rotaion speed +\r\n\u00a0* arrow up\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : line length +\r\n\u00a0* arrow down\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : line length -\r\n\u00a0* s\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : save png\r\n\u00a0*\/\r\n\r\nvar lineLength = 0;\r\nvar angle = 0;\r\nvar angleSpeed = 1.0;\r\nvar col;\r\nvar state = 1;\r\n\r\nfunction setup() {\r\n\u00a0 \/\/ use full screen size \r\n\u00a0 createCanvas(780, 780);\r\n\u00a0 background(255);\r\n\u00a0 smooth();\r\n\u00a0 cursor(CROSS);\r\n}\r\nfunction draw() {\r\n\u00a0 if (mouseIsPressed) {\r\n\u00a0\u00a0\u00a0 if (state == 1){\r\n\u00a0\u00a0\u00a0 push();\r\n\u00a0\u00a0\u00a0 col = color(181,157,0,100);\r\n\u00a0\u00a0\u00a0 strokeWeight(1.0); \r\n\u00a0\u00a0\u00a0 noFill();\r\n\u00a0\u00a0\u00a0 stroke(col);\r\n\u00a0\u00a0\u00a0 translate(mouseX,mouseY);\r\n\u00a0\u00a0\u00a0 rotate(radians(angle));\r\n\u00a0\u00a0\u00a0 line(0, 0, lineLength, 0);\r\n\u00a0\u00a0\u00a0 pop();\r\n\u00a0\u00a0\u00a0 angle += angleSpeed;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0 if (state == 2){\r\n\u00a0\u00a0\u00a0 push();\r\n\u00a0\u00a0\u00a0 col = color(0,130,164,100);\r\n\u00a0\u00a0\u00a0 strokeWeight(1.0); \r\n\u00a0\u00a0\u00a0 noFill();\r\n\u00a0\u00a0\u00a0 stroke(col);\r\n\u00a0\u00a0\u00a0 translate(mouseX,mouseY);\r\n\u00a0\u00a0\u00a0 rotate(radians(angle));\r\n\u00a0\u00a0\u00a0 line(0, 0, lineLength, 0);\r\n\u00a0\u00a0\u00a0 pop();\r\n\u00a0\u00a0\u00a0 angle += angleSpeed;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0 if (state == 3){\r\n\u00a0\u00a0\u00a0 push();\r\n\u00a0\u00a0\u00a0\u00a0 col = color(87,35,129,100);\r\n\u00a0\u00a0\u00a0 strokeWeight(1.0); \r\n\u00a0\u00a0\u00a0 noFill();\r\n\u00a0\u00a0\u00a0 stroke(col);\r\n\u00a0\u00a0\u00a0 translate(mouseX,mouseY);\r\n\u00a0\u00a0\u00a0 rotate(radians(angle));\r\n\u00a0\u00a0\u00a0 line(0, 0, lineLength, 0);\r\n\u00a0\u00a0\u00a0 pop();\r\n\u00a0\u00a0\u00a0 angle += angleSpeed;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0 if (state == 4){\r\n\u00a0\u00a0\u00a0 push();\r\n\u00a0\u00a0 col = color(197,0,123,100);\r\n\u00a0\u00a0\u00a0 strokeWeight(1.0); \r\n\u00a0\u00a0\u00a0 noFill();\r\n\u00a0\u00a0\u00a0 stroke(col);\r\n\u00a0\u00a0\u00a0 translate(mouseX,mouseY);\r\n\u00a0\u00a0\u00a0 rotate(radians(angle));\r\n\u00a0\u00a0\u00a0 line(0, 0, lineLength, 0);\r\n\u00a0\u00a0\u00a0 pop();\r\n\u00a0\u00a0\u00a0 angle += angleSpeed;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0 \r\n\u00a0 }\r\n}\r\n\r\nfunction mousePressed() {\r\n\u00a0 \/\/ create a new random line length\r\n\u00a0 lineLength = random(70, 200);\r\n}\r\n\r\nfunction keyTyped() {\r\n\u00a0 if (key == 's' || key == 'S') save(\"P_2_3_1_01.png\");\r\n\u00a0 \/\/ reverse direction and mirrow angle\r\n\u00a0 if (key=='d' || key=='D') {\r\n\u00a0\u00a0\u00a0 angle = angle + 180;\r\n\u00a0\u00a0\u00a0 angleSpeed = angleSpeed * -1;\r\n\u00a0 }\r\n\u00a0 \/\/default colors from 1 to 4 \r\n\u00a0 if (key == '1') state = 1;\r\n\u00a0 if (key == '2') state = 2;\r\n\u00a0 if (key == '3') state = 3;\r\n\u00a0 if (key == '4') state = 4;\r\n}\r\n\r\nfunction keyPressed() {\r\n\u00a0\u00a0 if (keyCode == DELETE || keyCode == BACKSPACE) background(255);\r\n\u00a0 if (keyCode == UP_ARROW) lineLength += 10;\r\n\u00a0 if (keyCode == DOWN_ARROW) lineLength -= 10; \r\n\u00a0 if (keyCode == LEFT_ARROW) angleSpeed -= 0.5;\r\n\u00a0 if (keyCode == RIGHT_ARROW) angleSpeed += 0.5; \r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":2612,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[10,6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2611"}],"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=2611"}],"version-history":[{"count":1,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2611\/revisions"}],"predecessor-version":[{"id":2613,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/2611\/revisions\/2613"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/media\/2612"}],"wp:attachment":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}