bra*_*jam 17
这也是3D(OpenGL)图形世界中的常见问题.
解决方案是创建辅助画布对象(不显示),并将图像重绘为其中.绘制与主画布绘制完全相同,只是每个元素都使用唯一颜色绘制.然后,您可以查找与鼠标选择对应的像素,并读取其颜色,这将为您提供相应的元素(如果有).
这是OpenGL世界中常用的方法.您可以通过谷歌搜索术语"opengl object picking"找到它的描述.这是众多搜索结果中的一个.
更新: HTML5画布规范现在包括命中区域.我不确定浏览器支持这些程度的程度.