%let name=twelve_dots_illusion; filename odsout '.'; /* http://sploid.gizmodo.com/can-you-see-all-12-black-dots-at-once-1786512711 http://nymag.com/selectall/2016/09/12-dots-optical-illusion-hermann-grid-is-hurting-my-brain.html */ data my_map; id=1; x=0; y=0; output; x=26; y=0; output; x=26; y=18; output; x=0; y=18; output; run; data anno_lines; input start_x start_y end_x end_y; datalines; 0 0 18 18 4 0 22 18 8 0 26 18 12 0 26 14 16 0 26 10 20 0 26 6 24 0 26 2 0 4 14 18 0 8 10 18 0 12 6 18 0 16 2 18 1 0 1 18 3 0 3 18 5 0 5 18 7 0 7 18 9 0 9 18 11 0 11 18 13 0 13 18 15 0 15 18 17 0 17 18 19 0 19 18 21 0 21 18 23 0 23 18 25 0 25 18 0 1 26 1 0 3 26 3 0 5 26 5 0 7 26 7 0 9 26 9 0 11 26 11 0 13 26 13 0 15 26 15 0 17 26 17 2 0 0 2 6 0 0 6 10 0 0 10 14 0 0 14 18 0 0 18 22 0 4 18 26 0 8 18 26 4 12 18 26 8 16 18 26 12 20 18 26 16 24 18 ; run; data anno_lines; set anno_lines; xsys='2'; ysys='2'; hsys='3'; when='a'; color='gray7e'; line=1; size=1.2; function='move'; x=start_x; y=start_y; output; function='draw'; x=end_x; y=end_y; output; output; run; data anno_black_dots; input x y; datalines; 1 1 9 1 17 1 25 1 1 9 9 9 17 9 25 9 1 17 9 17 17 17 25 17 ; run; data anno_black_dots; set anno_black_dots; length function color $8; xsys='2'; ysys='2'; hsys='3'; when='a'; function='pie'; rotate=360; size=1.0; style='psolid'; color='black'; output; style='pempty'; color='grayee'; output; size=size*1.1; output; run; goptions device=png; ODS LISTING CLOSE; ODS HTML path=odsout body="&name..htm" (title="12 Dots Illusion") style=htmlblue; goptions gunit=pct ftitle="albany amt/bold" ftext="albany amt" htitle=5 htext=2.5; goptions ctext=gray33; goptions cback=white; pattern1 v=s c=white; title "Can you see all 12 black dots at the same time?"; goptions xpixels=500 ypixels=400; proc gmap data=my_map map=my_map anno=anno_lines; id id; choro id / levels=1 nolegend coutline=white anno=anno_black_dots des='' name="&name"; run; goptions xpixels=800 ypixels=600; proc gmap data=my_map map=my_map anno=anno_lines; id id; choro id / levels=1 nolegend coutline=white anno=anno_black_dots des='' name="&name"; run; quit; ODS HTML CLOSE; ODS LISTING;