首页 > 解决方案 > 如何检查一个 CGPoint 是否在 Shape 中?

问题描述

假设我有一个Shape

struct ShapeA: Shape {
    func path(in rect: CGRect) -> Path {
        Path { path in
            path.move(to: CGPoint(x: 100, y: 100))
            path.addQuadCurve(to: CGPoint(x: 110, y: 210), control: CGPoint(x: 130, y: 200))
            path.addQuadCurve(to: CGPoint(x: 180, y: 240), control: CGPoint(x: 140, y: 240))
            path.addQuadCurve(to: CGPoint(x: 200, y: 250), control: CGPoint(x: 150, y: 250))
            path.closeSubpath()
        }
    }
}

和一个单一的 CGPoint: CGPoint(x: 100, y: 100)。如何检查此 CGPoint 是否在ShapeA(或任何其他形状)

标签: swiftui

解决方案


path.contains(point)

path通过调用.path(in rect:)ShapeA 实例来创建。)

对于自相交路径,您应该查看eoFill处理奇偶填充规则的选项。


推荐阅读