脳卒中の境界線があふれるのを防ぎます
質問
strokeRect (0, 0, canvasWidth, canvasHeight);
完全な長方形を描きますが、線の幅は半分にカットされています。例は次のとおりです。
<canvas></canvas>
<script>
var canvas = document.getElementsByTagName ("canvas");
var lineWidth = 10;
var canvasHeight = canvas[0].height;
var canvasWidth = canvas[0].width;
var ctx = canvas[0].getContext ("2d");
ctx.lineWidth = lineWidth;
ctx.strokeRect (0, 0, canvasWidth, canvasHeight);
</script>
私はそれを修正することができますが、エレガントではありません:
<canvas></canvas>
<script>
var canvas = document.getElementsByTagName ("canvas");
var lineWidth = 10;
var canvasHeight = canvas[0].height - lineWidth;
var canvasWidth = canvas[0].width - lineWidth;
var ctx = canvas[0].getContext ("2d");
ctx.lineWidth = lineWidth;
lineWidth /= 2;
ctx.strokeRect (lineWidth, lineWidth, canvasWidth, canvasHeight);
</script>
それを行うためのネイティブの方法はありますか? 「ボックスサイズの」CSS3属性のようなもの:
canvas {
box-sizing: border-box;
}
ありがとう。
正しい解決策はありません
所属していません StackOverflow