【发布时间】:2022-01-22 23:41:23
【问题描述】:
我试图弄清楚如何检查矩形是否完全在 SVG 路径内。目前我正在使用 SVG 的 isPointInFill() 函数来检查它的角点是否这样做。但正如您所见,粉红色方块在视觉上不在 SVG 路径内,但它的角点在,因此它被标记为“内部”。
我需要 getIntersectionList() 之类的东西,但需要两个 SVG 元素。
有谁知道解决这个问题的方法吗?
编辑:我找到了解决方案。 我使用 Path 元素代替了 Rect 元素。对于路径,我有 .getTotalLength() 和 .getPointAtLength() - 这就是我如何获得每个像素的整个轮廓的坐标。
【问题讨论】:
-
你可以尝试每个边界点,而不仅仅是角落。
-
检查重叠的目的是什么?
-
@chrwahl 目的是最后我将有一个矩形网格,由一个形状约束为 ClipPath 蒙版。然后,用户应该只能点击完全在掩码内的矩形。
-
@RatajS 是的,但是如何找到所有虚构的边界点?
-
@chrs 它应该是带有 x 26 或 56 和 y 18–45 的点与带有 x 26–56 和 y 18 或 45 的点组合为您的粉红色方块。
标签: javascript svg