我正在使用 Canvas (HTML 5) 绘制线条,因为线条/形状不作为对象存储在 Canvas 中,所以我无法向其附加唯一事件(例如 onmouseclick)
我希望将 onmouseover 事件附加到一行,是否可以通过使用 Javascript 了解鼠标是否位于 Canvas 中的特定行(使用其 2 X 和 2 Y 坐标)上。这适用于不同的线宽(例如:2,5 像素)
希望避免使用 SVG,因为整个项目都是在 Canvas 上构建的
请指教。
最佳答案
您需要使用数学公式来计算直线的面积以及某个点是否与其相交。
这是一个基本示例:
- 查找相对于 Canvas 位置的鼠标坐标 ( How to find mouse pos on element )
- 计算鼠标 x/y 是否在某个矩形内 ( Point in rectangle formula )
- 完成。
关于javascript - 在 Javascript 中获取线坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6675914/