HTML5 Canvasã§åãã¸ã§ãã©ãã£ãã»ã¢ã¼ããããã°ã«è²¼ã
ãã¸ã§ãã©ãã£ãã»ã¢ã¼ãã
æè¿ãã¸ã§ãã©ãã£ãã»ã¢ã¼ããã¨ããæ¬ãè²·ãã¾ãããã¸ã§ãã©ãã£ãã»ã¢ã¼ã(Generative Art)ã¨ã¯ãé常ã®ã¢ã¼ãä½åã®ããã«äººéãæãããã¤ãã£ããããã®ã§ã¯ãªããä½ããã®ã¢ã«ã´ãªãºã ãã©ã³ãã æ§ãå©ç¨ãã¦çæçã«ã¤ãããããã®ãè¨ãã¾ããã¡ãã£ã¨ããããã°ã©ã ã§ã¢ã¼ããã§ããã®ã§ãçµµå¿ãä¸è¦ãªã®ãé åã§ãã
ä¸ã®ããã«ç»åæ¤ç´¢ããã¨ããã£ããããã®ãããã¤ãã§ã¦ãã¾ãã
generative art - Google 検索
HTML5 Canvasã§æããçµµãããã°ã«è²¼ãä»ããæ¹æ³
æ¬ãèªãã ãå®éã«è£½ä½ãã¦ãã®ããã°ã«è²¼ãä»ãããã®ã§ããçµµæãæ¹æ³ã¨ãã¦ã¯HTML5 Canvas + Javascriptã使ããã¨ã«ããè²¼ãä»ãæ¹ã調ã¹ã¦ã¿ã¾ãããæ¬ã§ã¯Processingã¨ããè¨èªã使ã£ã¦ããã®ã§ãããJavascriptã®æ¹ã好ã¿ãªã®ã§ã
試ãã¦ã¿ãã¨æå¤ã«ç°¡åã§ãããã¯ã¦ãªè¨æ³ãã試ãã¦ããªãã®ã§ããããã¶ã以ä¸ãããã°ç·¨éç»é¢ã«ã³ããããã ãã§OKã§ããã»ãã®ããã°ãè¨æ³ã§ããããã®ã§ã¯ãªãã§ããããã
ããã¯åç´ã«èµ¤ãé·æ¹å½¢ãæ¸ãã ãã®ä¾ã§ããHTML5 Canvasã®ä½¿ãæ¹ã®èª¬æã¯ä»ã®Webãµã¤ããæ¸ç±ãåç
§ãã¦ãã ããã
<canvas id="canvas1" width="300" height="300"></canvas> <script type="text/javascript"> var canvas = document.getElementById("canvas1"); var ctx = canvas.getContext("2d"); // ãã®ãããã«å¥½ããªããã°ã©ã ãè¨è¿°ï¼ï¼ï¼ ctx.fillStyle = "rgb(255, 0, 0)";// èµ¤è² ctx.fillRect(50, 50, 200, 100);// é·æ¹å½¢ãæ¸ã </script>
ä¸ã®ããã°ã©ã ãç·¨éç»é¢ã«ã³ããããã¨ã以ä¸ã®ããã«ãçµµæããã§ãã¾ãã
ã¯ããã¦ã®ã¸ã§ãã©ãã£ãã»ã¢ã¼ã
ããã°ã¸ã®è²¼ãä»ãæ¹ãåãã£ãã®ã§ãæ©éä½ã£ã¦ã¿ã¾ãï¼æ¸ç±ãã¸ã§ãã©ãã£ãã»ã¢ã¼ããã®ä¸ç¤ããããåèã«ãã¤ã¤ãé©å½ã«ãªãªã¸ãã«ã§ä½ãã¾ããã
以ä¸ã®Start/Pauseãã¿ã³ãã¯ãªãã¯(ã¿ãã)ããã¨éå§ããããä¸åº¦ã¯ãªãã¯(ã¿ãã)ããã¨ä¸æåæ¢ãã¾ããéå§ããã¨ãè²ã¨ä¸å¿ãã©ã³ãã ã«å¤ãã¤ã¤ãç·ãããããã¨ã¾ãã£ã¦ããã¾ããã©ã³ãã ãªã®ã§ããã¼ã¸ãæ´æ°ãã¦Startãã度ã«ç°ãªã模æ§ããããããã¯ãã§ãã
ãã¾ãæ´ç·´ããã¦ãªãâ¦
ãã®ããã°ã©ã ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ãã¾ãã
<button onclick="start_pause()" style="font-size: 1em; font-weight: bold; padding: 0px 5px; background-color: #248; color: #fff; border-style: none;"> <h1> Start / Pause </h1> </button> <canvas id="a_canvas" width="300" height="300"></canvas> <script type="text/javascript"> var canvas = document.getElementById("a_canvas"); var ctx = canvas.getContext("2d"); canvas.width = 300; canvas.height = 300; var cx = canvas.width / 2.0;// center x var cy = canvas.height / 2.0;// center y var line_len = 30; var ang = Math.PI / 3.0; var rand_r, rand_g, rand_b; var start_or_stop = 0; function draw_line(x1, y1, x2, y2, w){ ctx.lineWidth = w; ctx.beginPath(); ctx.moveTo(x1, y1); ctx.lineTo(x2, y2); ctx.closePath(); ctx.stroke(); } function update(){ line_len += 10*Math.random() - 5; rand_r = 100 + Math.floor(156*Math.random()); rand_g = 100 + Math.floor(156*Math.random()); rand_b = 100 + Math.floor(156*Math.random()); cx += 10*Math.random() - 5; cy += 10*Math.random() - 5; ctx.strokeStyle = "rgb(" + rand_r + ", " + rand_g + ", " + rand_b + ")"; draw_line(cx - line_len*Math.cos(ang), cy - line_len*Math.sin(ang), cx + line_len*Math.cos(ang), cy + line_len*Math.sin(ang), 2); ang += 0.1*Math.random(); } function start_pause(){ if (start_or_stop==0){ timer = setInterval(update, 10);// updateé¢æ°ãå®æçã«å®è¡ãã¦ã¢ãã¡ã¼ã·ã§ã³ }else{ clearInterval(timer);// ã¹ããã } start_or_stop = 1 - start_or_stop;// ç¶æ ãæ´æ° } </script>
ãããã«
ããæãã®ä½åãã§ãããæ¬ããã°ã«æ²è¼ãã¦ã¿ã¾ãã
åèã«ããæ¬ã¯ãã¡ãâ
![[æ®åç]ã¸ã§ãã©ãã£ãã»ã¢ã¼ãâProcessingã«ããå®è·µã¬ã¤ã [æ®åç]ã¸ã§ãã©ãã£ãã»ã¢ã¼ãâProcessingã«ããå®è·µã¬ã¤ã](http://ecx.images-amazon.com/images/I/41Eq81vSVPL._SL160_.jpg)
[æ®åç]ã¸ã§ãã©ãã£ãã»ã¢ã¼ãâProcessingã«ããå®è·µã¬ã¤ã
- ä½è : ãããã»ãã¢ã½ã³,Matt Pearson,ä¹ ä¿ç°æå¼,æ²åä»
- åºç社/ã¡ã¼ã«ã¼: ãã¼ã»ã¨ãã»ã¨ãæ°ç¤¾
- çºå£²æ¥: 2014/11/21
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- ãã®ååãå«ãããã° (1件) ãè¦ã