Я пытаюсь нарисовать красный круг, где щелкает моя мышь, но ничего не рисуется. Я могу следовать своим координатам x, y, которые я нажимаю. Если я положу постоянные значения для x, y в методе arc, отобразится круг. Что я делаю не так?
var currColor = "#FF0000";
var currSize = 20;
window.onload = function() {
var theCanvas = document.getElementById('my_canvas');
theCanvas.addEventListener("click", CircleOnClick, false);
}
function Cell(row, column) {
this.row = row;
this.column = column;
}
function getCursorPosition(e) {
var x;
var y;
if (e.pageX != undefined && e.pageY != undefined) {
x = e.pageX;
y = e.pageY;
}
else {
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
var cell = new Cell(x, y);
return cell;
}
function CircleOnClick(e) {
var canvasElement = document.getElementById('my_canvas');
if (canvasElement && canvasElement.getContext) {
var ctx = canvasElement.getContext("2d");
if (ctx) {
var cell = getCursorPosition(e);
var x = parseInt(cell.row);
var y = parseInt(cell.column);
//Start drawing
ctx.fillStyle=currColor;
ctx.beginPath();
console.log("x" + x);
console.log("y" + y);
console.log("Current color" + currColor);
console.log("Current size" + currSize);
ctx.arc(x,y,currSize,0,Math.PI*2,true);
ctx.closePath();
ctx.fill();
}
}
}