XULでCanvasエディターを作ってみた

手軽にCanvasで遊べるツールとしてはオンラインにCanvas Shellと言う物があります。

車輪の再発明感が多々ありますけど、Canvasで遊べるエディターを作ってみました。

タイトル通り激しくFirefox専用です。

ダウンロード

Canvas Editor

使い方

デフォルトで、canvas, ctxがいきなり使えるようになってます。

サンプル

貼付けてすぐに試せるサンプルです。

clip()の例

via Canvas Tutorial : Compositing


function draw() {
  ctx.fillRect(0,0,150,150);
  ctx.translate(75,75);

  // Create a circular clipping path       
  ctx.beginPath();
  ctx.arc(0,0,60,0,Math.PI*2,true);
  ctx.clip();

  // draw background
  var lingrad = ctx.createLinearGradient(0,-75,0,75);
  lingrad.addColorStop(0, '#232256');
  lingrad.addColorStop(1, '#143778');
 
  ctx.fillStyle = lingrad;
  ctx.fillRect(-75,-75,150,150);

  // draw stars
  for (j=1;j<50;j++){
    ctx.save();
    ctx.fillStyle = '#fff';
    ctx.translate(75-Math.floor(Math.random()*150),75-Math.floor(Math.random()*150));
    drawStar(ctx,Math.floor(Math.random()*4)+2);
    ctx.restore();
  }
 
}
function drawStar(ctx,r){
  ctx.save();
  ctx.beginPath()
  ctx.moveTo(r,0);
  for (i=0;i<9;i++){
    ctx.rotate(Math.PI/5);
    if(i%2 == 0) {
      ctx.lineTo((r/0.525731)*0.200811,0);
    } else {
      ctx.lineTo(r,0);
    }
  }
  ctx.closePath();
  ctx.fill();
  ctx.restore();
}

draw();

同心円状にグラデーション


ctx.translate(75,75);
 
ctx.beginPath();
ctx.arc(0,0,60,0,Math.PI*2,true);
ctx.clip();

var lingrad = ctx.createRadialGradient(0, 0, 0, 0, 0, 75);
lingrad.addColorStop(0, '#838286');
lingrad.addColorStop(1, '#143778');

ctx.fillStyle = lingrad;
ctx.fillRect(-75,-75,150,150);
    

合わせて読みたい!(追記)

なんだかAmazonのリコメンドっぽぃですが、

辺りを読むとよりCanvasを楽しめるかもしれません。

drawWindow()が使えないから、extensionにするかもです。

comment

Comment Form
remember info

trackback

trackback url
trackback count
0
Recent Entries
  1. perlで気軽にsitemap.xmlを作る
  2. XULでCanvasエディターを作ってみた
  3. nsIObserverServiceを使って複数のobserverに通知を行う
  4. CGI::Application::Plugin::Cache::Adaptive Release
  5. Gearmanを使ってみた
  6. 「正しくHTMLを書こうと心がけている人に5つの質問」の回答
  7. Modules in Games-Nintendo-Wii-Mii
  8. Module-Starterのカスタマイズ
  9. JSON::DWIW vs JSON::Syck vs JSON
  10. よろしくお願い致します
Archives
  1. 2008年02月 (1)
  2. 2007年06月 (2)
  3. 2007年05月 (1)
  4. 2007年04月 (4)
  5. 2007年03月 (2)

all

categories
RSS/Atom Feed
license
Creative Commons License
Powered by