Надеюсь, у вас все хорошо.
Я пытаюсь сделать мой Paint-подобный, используя HTML 5 Canvas. Я должен сделать два типа прямоугольника: заполненный и не заполненный. Вот как я это сделал:
function rectangle(state = false) {
var first = [];
var second = [];
var click = 0;
canvas.mousedown(function(e) {
if (status == "rectangle") {
if (click == 0) {
first[0] = e.offsetX;
first[1] = e.offsetY;
click++;
} else {
second[0] = e.offsetX;
second[1] = e.offsetY;
if (state) {
ctx.fillRect(
first[0],
first[1],
second[0] - first[0],
second[1] - first[1]
);
} else {
ctx = canvas[0].getContext("2d");
ctx.strokeRect(
first[0],
first[1],
second[0] - first[0],
second[1] - first[1]
);
}
click = 0;
}
}
});
}
и это мой звонок
//rectangle ;)
$("#fill").click(function() {
$("#alert").text("fill Rectangle");
status = "rectangle";
rectangle(true);
});
$("#contour").click(function() {
$("#alert").text("Rectangle");
status = "rectangle";
rectangle();
});
У меня есть 2 кнопки для выбора желаемого типа прямоугольника. Когда я нажимаю filled
, я могу нарисовать свой прямоугольник так, как хочу, но когда я переключаюсь на not filled
, он все равно рисует, заполняя прямоугольник. Чтобы нарисовать незаполненный прямоугольник, я должен нажать F5 и нажать сначала в not filled
.
Заранее благодарю за помощь (извините за плохой английский).