普通に BOX を Line で描こうとすると、その位置を中心として線の太さを 使うので、始点が欠けてしまいます。また、エリアいっぱいいっぱいに引こ うとすると、線が細くなってしまうので、補正しています。 ※ 指定 BOX エリアの内側を指定した太さで線を描画しています
<div id="target"><input type="button" value="指定サイズ BOX の内側を指定の太さで線を引く" onclick='drawMyBox()'><br></div> <script type="text/javascript"> function drawMyBox() { var canvas = document.createElement("canvas"); if ( ! canvas || ! canvas.getContext ) { return false; } else { canvas.setAttribute("width", "300"); canvas.setAttribute("height", "300"); } document.getElementById("target").appendChild(canvas) var ctx = canvas.getContext('2d'); box( ctx, 0, 0, 200, 300, 10 ) function box(c,x,y,w,h,lw) { c.beginPath(); c.moveTo(x+(lw/2), y+(lw/2)); c.lineTo(x-(lw/2)+w, y+(lw/2)); c.lineTo(x-(lw/2)+w, y-(lw/2)+h); c.lineTo(x+(lw/2), y-(lw/2)+h); c.lineTo(x+(lw/2), y); c.lineWidth = lw; c.stroke(); } } </script>
|
【HTML5の最新記事】
- Google Chrome の type="date" で表示される datepicker の最も使いどころは、フレームをまたいで表示されるところです
- IFRAME が各ブラウザで現在(2013/03/13)どのように振る舞うかのマトリックス
- Canvas : 角丸の DIV を CSS3 では無く Canvas で表現すると、こうなります。( IEは 9以上 )
- Canvas : IE8も 角丸で BOX の内側を指定の太さで線を引く
- Canvas : 角丸で、指定サイズ BOX の内側を指定の太さで線を引く
- HTML5 : 最も簡単な「required 属性」による未入力チェック
- HTML5 : 画像にテキストを重ねて少し回転して「名前を付けて画像を保存」するとどうなるか
- HTML5 : canvas 要素に画像をロードする