1、先将所有的线保存起来。
2、使用isPointInStroke去判断是否在线上
function onClick(e) {
// 取得画布上被单击的点
var clickX = e.offsetX;
var clickY = e.offsetY;
// 查找被单击的线(我这里存储的是两个点)
for (var i = 0; i < circlesDot.length - 1; i++) {
//拿到第一给点
var circle = circlesDot[i];
拿到第二个点
var circleT = circlesDot[i+1];
ctxN.beginPath();
ctxN.lineWidth = 4;//这里比实际线的宽度宽了一倍
ctxN.moveTo(circle.x, circle.y);
ctxN.lineTo(circleT.x, circleT.y);
if (ctxN.isPointInStroke(clickX, clickY)) {
alert(circle.pipeLineObj.ID); break;
}
i++;
}
//如果当前鼠标位置有圆圈,还要显示tip
if (this.SelectedLineCircle != null) {
alert(this.SelectedLineCircle.ID);
}
}