HTML5とjavascriptを使用してプロジェクトに取り組んでいます。ドキュメントが読み込まれるキャンバスがあります。
canvas = document.getElementById('pdf');
ctx = canvas.getContext('2d');
上記のキャンバスでは、ドキュメントが読み込まれます。実行時に個別のキャンバスとしてさまざまなシェイプを描画する必要があるため、描画時にシェイプごとに新しいキャンバスを作成する必要があります(必須)。
MouseDown
function mouse_Pressed(e) {
getMouse(e);//getting current X and Y position
x1=mx; y1=my;
var cords=getMousePos(canvas,e);
annCanvas=document.createElement('canvas'); //Creating
annCanvasContext=annCanvas.getContext('2d');
isDraw=true;isDrawAnn=true;
}
MouseMove
function mouse_Dragged(e)
{
if(isDraw)
{
getMouse(e);
x2=mx; y2=my;
calculatePoints(x1,y1,x2,y2);
var width=endX-startX;
var height=endY-startY;
annCanvas.style.position = "absolute";
annCanvas.width=4; //Width of square
annCanvas.style.left=""+startX+"px";
annCanvas.style.top=""+startY+"px";
annCanvas.height=height;
annCanvas.style.zIndex="100000";
document.getElementById("canvas").appendChild(annCanvas);
annCanvasContext.fillStyle='rgb(255,255,0)';
annCanvasContext.lineWidth=borderWidth;
annCanvasContext.strokeRect(0,0,width,height);
annCanvasContext.stroke();
}
}
MouseReleased
function mouse_Released(e)
{
isDrag = false;
isDraw=false;
isDrawAnn=false;
}
主な問題は、境界線の幅が50の長方形を描画している場合、キャンバスの領域が少ないため(つまり、正しい形状)、そのキャンバスの外側の部分がカットされることです。だから私はキャンバスの高さ、幅をそのborderWidthで計算したいと思います。