我试图单击多边形的一角,然后记录我单击的标签。
我在单击的画布上附加了一个事件侦听器,然后记录了坐标,但是它们与绘图时的坐标不完全相同,因此如何在单击时获取交点(即标签)。
到目前为止我的代码
subprocess.call(["...",name])
答案 0 :(得分:2)
您可以通过一点数学来做到这一点:
intersect(point, coord) {
return Math.sqrt((point.x-coord.x) ** 2 + (point.y - coord.y) ** 2) < 10; //where 10 = your circle radius
}
onclick(e: MouseEvent){
const pos = {
x: e.layerX,
y: e.layerY
};
this.coordinates.forEach(coord => {
if (this.intersect(pos, coord)) {
alert('clicked: ' + coord.label);
}
})
}