<!DOCTYPE html> <html><head> <script src="javascript-processing-example-processing.js"></script> <script src="javascript-processing-example-init.js"></script> <link rel="stylesheet" href="javascript-processing-example-style.css"> </head><body><h1><a href="http://ejohn.org/blog/processingjs/">Processing.js</a></h1> <h2>Functions</h2> <p>The draw_target() function makes it easy to draw many distinct targets. Each call to draw_target() specifies the position, size, and number of rings for each target.</p> <p><a href="http://processing.org/learning/basics/functions.html"><b>Original Processing.org Example:</b> Functions</a><br> <script type="application/processing"> void setup() { size(200, 200); background(51); noStroke(); smooth(); noLoop(); } void draw() { draw_target(68, 34, 200, 10); draw_target(152, 16, 100, 3); draw_target(100, 144, 80, 5); } void draw_target(int xloc, int yloc, int size, int num) { float grayvalues = 255/num; float steps = size/num; for(int i=0; i<num; i++) { fill(i*grayvalues); ellipse(xloc, yloc, size-i*steps, size-i*steps); } } </script><canvas width="200" height="200"></canvas></p> <div style="overflow: hidden; height: 0px; width: 0px;"></div> <pre><b>// All Examples Written by <a href="http://reas.com/">Casey Reas</a> and <a href="http://benfry.com/">Ben Fry</a> // unless otherwise stated.</b> void setup() { size(200, 200); background(51); noStroke(); smooth(); noLoop(); } void draw() { draw_target(68, 34, 200, 10); draw_target(152, 16, 100, 3); draw_target(100, 144, 80, 5); } void draw_target(int xloc, int yloc, int size, int num) { float grayvalues = 255/num; float steps = size/num; for(int i=0; i<num; i++) { fill(i*grayvalues); ellipse(xloc, yloc, size-i*steps, size-i*steps); } }</pre> </body></html>