JavaScript 340
var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
var o=new Function("f","i","t",'open("","",f+"left="+i+",top="+t)')
for(j=0;j<m/d;++j,i=j*d){
u=Math.sqrt(i*(m-i))
t=m/2+u*(j%2-0.5)*2
o(f,i,t)
i>m/5&&i<0.8*m&&j%2&&o(f,i,t-m/4);
((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(f,i,m/3)
}
Javascript,283
优化版本(进行了一些改进并且没有不必要的空格)
var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
function o(i,t){open("","",f+"left="+i+",top="+t)}for(j=0;j<m/d;i=++j*d){u=Math.sqrt(i*(m-i));t=m/2+j%2*2*u-u;o(i,t);i>m/5&&i<0.8*m&&j%2&&o(i,t-m/4);((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(i,m/3)}
好吧..也许它不像您想要的那么短,但是可以肯定的是它是非常规的。当您的浏览器最大化时,它看起来更好。我真的很喜欢你的问题!如果要增加细节,只需d
稍微减小变量即可。
编辑:不幸的是,我无法在jsfiddle上运行它,但是您可以将其粘贴到aby浏览器中的Javascript控制台中。哦,在页面上启用弹出窗口:)。
edit2:
您可以运行它以创建一个新的html文件,并将代码粘贴到其中:
<body>
<script>
var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
var o=new Function("f","i","t",'open("","",f+"left="+i+",top="+t)')
for(j=0;j<m/d;++j,i=j*d){
u=Math.sqrt(i*(m-i))
t=m/2+u*(j%2-0.5)*2
o(f,i,t)
i>m/5&&i<0.8*m&&j%2&&o(f,i,t-m/4);
((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(f,i,m/3)
}
</script>
</body>
然后,当您运行它并没有任何反应时,只需启用弹出窗口并重新加载页面即可。另外我贴