サイト運営者の日々の日記。2008年03月。
現在公開しているJavaScriptグラフ描画スクリプトよりも、性能のいいアルゴリズム。既存のものと差し替えたい。
適当なHTMLを作成し、<script>で囲んで実行。無駄に省エネ仕様になっているのは、なんとなく容量に挑戦していたから。このスクリプトから改行,インデント,無駄な;を取っ払えば最小構成になる。
p = [0,0]; s = 10; m = 250; f = "Math.sin(x)*Math.exp(-x/4)+1/(x*x-1)"; function d(a,b) { document.write(w1+a+w2+b+w6) } w1 = '<span style="left:'; w2 = 'px;top:'; w3 = 'px;height:'; w4 = 'px;width:'; w5z = 'px;position:absolute;font-size:'; w5b = w5z+'15px;">'; w5a = w5z+'1px;background:#00f;color:#00f;">*'; w5c = w5z+'1px;background:#000;">.'; w6 = '<\/span>'; d(9,(2*m+15)+w5b+'<i>y='+f+'<\/i>');d(0,m+w3+1+w4+2*m+w5c);d(m,0+w3+2*m+w4+1+w5c); o = [[1,0,s+p[1]],[0,1,-s+p[0]],[2,1,s+p[0]],[1,2,-s+p[1]],[1,1,p]]; for(i in o)d(m*o[i][0],m*o[i][1]+w5b+o[i][2]); t = 0; for(i=-m;i<m;i++) { x = s*i/m+p[0]; g = 0; y = Math.round((eval(f)-p[1])*m/s); if(isNaN(y))continue; if(y<-m){ y = -m; g = 1; } if(y>m){ y = m; g = 1; } if(t==y&&g)continue; l = (i>-m)?y-t:1; q = (l<0)?l:0; d(m+i,(m-y+q)+w3+Math.abs(l)+w5a); t = y; }
日記を書こうとする際に適当なニュースを引用して文章を付け始めると、決まって文章量が莫大なものになってしまい、書きながら新見解に辿り着いたりしてそれで満足してしまうということを数回繰り返している。こういう文章は本来数日寝かせたほうが良いが、そうすると永久に日記が書けなくなりそうで、手っ取り早く別ファイルに保存することにしている。