この状況は説明が難しいので、図で説明しましょう。
作成された最初の形状内のピクセルが明るくなります。画面が黒くクリアされ、赤と緑のボックスが描画され、パスが描画されます。これまでに見つけた唯一の修正は、ボックスの線幅を 2 ピクセルに設定することでした。これは、ここで概説されている理由によるものです。
正方形を描画するために使用されるコードは次のとおりです。
sctx.save();
sctx.strokeStyle = this.color;
sctx.lineWidth = this.width;
sctx.beginPath();
sctx.moveTo(this.points[0].x, this.points[0].y);
for (var i = 1; i < this.points.length; i++)
{
sctx.lineTo(this.points[i].x, this.points[i].y);
}
sctx.closePath();
sctx.stroke();
sctx.restore();
そして行:
sctx.save();
sctx.strokeStyle = 'orange';
sctx.lineWidth = 5;
console.log(sctx);
sctx.beginPath();
sctx.moveTo(this.points[0].x, this.points[0].y);
for (var i = 1; i < this.points.length; i++)
{
sctx.lineTo(this.points[i].x, this.points[i].y);
}
sctx.closePath();
sctx.stroke();
sctx.restore();
ボックスが 2px 幅で描かれている同じ状況の写真:
lineTo()
おそらくアルファ値をいじっていますか?どんな助けでも大歓迎です。
編集:明確にするために、sctx.closePath();
描画されているパスから省略された場合も同じことが起こります。