Ken Webb 2011-01-22T12:57:27Z
<script implName="lang:BrowserJS:inline:"><![CDATA[
function drawEllipse(ctx, x, y, w, h) {
/* http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084 */
var kappa = .5522848;
ox = (w / 2) * kappa, // control point offset horizontal
oy = (h / 2) * kappa, // control point offset vertical
xe = x + w, // x-end
ye = y + h, // y-end
xm = x + w / 2, // x-middle
ym = y + h / 2; // y-middle
ctx.beginPath();
ctx.moveTo(x, ym);
ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);
ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);
ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);
ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);
ctx.closePath();
ctx.fill();
ctx.stroke();
};
function drawScene(ctx) {
/* circle */
ctx.fillStyle = 'red';
ctx.strokeStyle = 'black';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.arc(30, 50, 20, 0, Math.PI*2, true);
ctx.fill();
ctx.stroke();
ctx.closePath();
/* rectangle */
ctx.fillStyle = 'green';
ctx.fillRect(150, 50, 50, 40);
ctx.strokeRect(150, 50, 50, 40);
/* ellipse */
ctx.fillStyle = 'blue';
drawEllipse(ctx, 240, 20, 100, 40);
/* text */
ctx.fillStyle = 'black';
ctx.font = '40px sans-serif';
ctx.textBaseline = 'middle';
ctx.fillText ('Xholon', 120, 130);
/* line */
ctx.fillStyle = 'magenta';
ctx.strokeStyle = 'magenta';
ctx.lineWidth = 5;
ctx.beginPath();
ctx.moveTo(45, 50);
ctx.lineTo(150, 60);
ctx.stroke();
};
var myCanvas = "" +
"<canvas id='myCan' width='350' height='150'></canvas>" +
"<script type='text/javascript'>" +
"var myCanvas = document.getElementById('myCan');" +
"var ctx = myCanvas.getContext('2d');" +
"drawScene(ctx);" +
"</script>";
$('div#divOne').html(myCanvas);
]]></script>