我正在使用HTML5 Canvas来绘制线条。一个单独的线条是由在多个中间点上调用drawLine()函数形成的。例如:
(0, 0) -> (10, 10) -> (10, 5) -> (20, 12)
将在图中显示为一条线。
所有线条的(x, y)坐标都存储在一个数组中。
我想提供给用户选择线条的能力,让他们点击它时可以选择。在HTML5 Canvas中实现这一点变得困难,因为线条不是以对象的形式表示的。我唯一剩下的选择是首先找到任何一条线最接近按下鼠标事件的(x, y)坐标。一旦我检测到用户选择了哪条线,那么我就需要用粗体颜色重新绘制该线或在其周围放置半透明的颜色。但是,我认为这样做会太费时间,因为它涉及到循环遍历所有线条的所有(x, y)坐标。
我正在寻找可以帮助我以更高效的方式实现上述目标的方法。我应该考虑在HTML5中使用SVG吗?
任何建议都将不胜感激。