Rubyでcanvasをいじる

昨日の日記のJSObject(http://d.hatena.ne.jp/miura1729/20080118/1200662536)を使って、canvasタグをDOMで挿入するという方法で、FireFoxで今見ているページの後ろに星の図形を書く、プログラムを作ってみました。FireFoxはMozReplを使えるようにしておいてください。

require 'jsobj.rb'

def cp(dg)
  rad = (dg / 180.0) * Math::PI
  [250 + Math.sin(rad) * 250.0, 250 + Math.cos(rad) * 250.0]
end

canvas = $content.document.createElement('canvas')
canvas.width = 500
canvas.height = 500
$content.document.body.appendChild(canvas)
ctx = canvas.getContext('2d')
ctx.beginPath();
ctx.moveTo(*cp(0));
ctx.lineTo(*cp(144));
ctx.lineTo(*cp(288));
ctx.lineTo(*cp(72));
ctx.lineTo(*cp(216));
ctx.closePath();
ctx.stroke();

昨日のページのプログラムをjsobj.rbという名前でセーブしてください。また、昨日のバージョンはバグがいくつかありますので、動かなかったら、コピーしなおしてください。