ctx.shadowColor = "#ccc"; ctx.shadowOffsetX = 5; ctx.shadowOffsetY = 5; ctx.shadowBlur = 5; ctx.globalAlpha = 0.5; ctx.fillRect(0, 0, 100, 100);
図形の変形
ctx.scale(0.8,0.8); ctx.rotate(30/180*Math.PI); ctx.translate(100, 10); ctx.fillRect(0, 0, 100, 100);
stroke
ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(120,20); ctx.lineTo(120,120); ctx.stroke();
円形・曲線:round,butt,square
ctx.beginPath(); ctx.arc(100,100,50,10/180*Math.PI,210/180*Math.PI); ctx.lineWidth = 15; ctx.lineCap = "round"; ctx.stroke();
テキスト描画
ctx.font = 'bold 20px Verdana'; ctx.textAlign = 'left'; ctx.fillStyle = 'red'; ctx.fillText('Google', 20, 20, 40); ctx.strokeText('Google', 20, 120, 200);
画像表示
var img = new Image(); img.src = 'baby.jpg'; img.onload = function(){ ctx.drawImage(img, 10, 10); }
背景パターン
var img = new Image(); img.src = 'google.png'; im.onload = function(){ var patter = ctx.createPattern(img, 'repeat'); ctx.fillStyle = pattern; ctx.fillRect(20, 20, 100, 100); }
設定の保存、復元
ctx.fillStyle = "yellow"; ctx.save(); ctx.fillRect(0, 0, 50, 50); ctx.fillStyle= "blue"; ctx.fillRect(100, 0, 50, 50); ctx.restore(); ctx.fillRect(200, 0, 50, 50);
window.onload = function(){ draw(); } function draw(){ var canvas = document.getElementById('mycanvas'); if (!canvas || !canvas.getContext)return false; var ctx = canvas.getContext('2d'); ctx.globalAlpha = 0.5; for (var i = 0; i < 100; i++){ var x = Math.floor(Math.random() * 400); var y = Math.floor(Math.random() * 200); var r = Math.floor(Math.random() * 200); ctx.fillStyle = "rgb("+rgb()+","+rgb()+","+rgb()+")"; ctx.beginPath(); ctx.arc(x,y,r,0,2*Math.PI); ctx.stroke(); ctx.fill(); } function rgb(){ return Math.floor(Math.random() * 255); } }