我正在尝试计算所有身体或形状在屏幕上占据的总面积。即,如果我有 2 个圆 A 和 B,它们彼此相交,我想计算 A 联合 B 覆盖的区域(在屏幕上)。
我一直在阅读花栗鼠文档并在花栗鼠API中查找我可能使用的方法,但我没有找到任何可以直接使用的方法。
我发现的唯一两种可能有用的方法是这两种:pointQueryFirst:layers:group:
和segmentQueryFirstFrom:to:layers:group:
我当时的想法是:
- 使用第一种方法(pointQueryFirst)遍历屏幕上的所有点并调用该方法。如果一个点中没有形状,则将其累积到一个变量中。然后将该变量值除以屏幕面积,以获得空闲屏幕的百分比。
- 或者使用第二种方法(segmentQueryFirstFrom),创建一个递归算法,将屏幕分成两半并在每一半上运行查询,如果任何一半包含一个形状,然后将该区域分成两半并检查这些区域是否包含任何形状,等等上...
但我预计在使用它们时,整体性能会受到影响。我可以使用另一种解决方案吗?另一种我还没有找到的方法?任何帮助是极大的赞赏。