我用以下类似的代码在画布上绘制自由笔画。 我需要检查画布有多少被笔画覆盖。 有什么好方法可以检查吗? 我能想到的唯一方法是在鼠标抬起事件时计算具有特定颜色的像素数。 但这很糟糕,因为它很慢... 有什么建议吗?
$(document).ready(function(){
var draw = false;
var x_prev = null, y_prev = null;
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
canvas.mousedown(function(e){
draw = true;
x_prev = e.pageX - this.offsetLeft;
y_prev = e.pageY - this.offsetTop;
});
window.mouseup(function(){draw=false});
canvas.mousemove(function(e){
if(draw){
context.beginPath();
context.moveTo(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
context.lineTo(x_prev, y_prev);
context.stroke();
context.closePath();
x_prev = e.pageX - this.offsetLeft;
y_prev = e.pageY - this.offsetTop;
}
});
area += thickness * sqrt((e.pageX - this.offsetLeft - x_prev)^2 + (e.pageY - this.offsetTop - y_prev)^2);
,但这并不能解决相交的线条问题。 - Blender