@antv/g-plugin-canvas-picker

A G plugin for picking in canvas

Usage no npm install needed!

<script type="module">
  import antvGPluginCanvasPicker from 'https://cdn.skypack.dev/@antv/g-plugin-canvas-picker';
</script>

README

@antv/g-plugin-canvas-picker

基于 Canvas2D API 实现的拾取:

  1. 使用 R-Tree 空间索引查找拾取点命中的一系列图形包围盒
  2. 在这些图形中找到最顶层的一个图形,依据 z-index
  3. 使用数学计算精确判定是否命中该图形,例如 Circle 测算到圆心距离是否小于半径

该方案基于 CPU,因此优化点在于包围盒相交运算是否足够快。