代码语言:javascript复制
1 //用playground运行即可
2 import UIKit
3
4 var str = "Hello, playground"
5
6 let lTestPointsOne : [(Double, Double)] = [(0,0)]
7 let lTestPoints : [(Double, Double)] = [(0,0),(0,1),(1,1)]
8 let lPoints : [(Double, Double)] = [(0,0),(0,1),(1,2),(2,1),(3,2),(3,0)]
9
10 func judgeIf(point:(Double,Double), isIn pointArr:[(Double, Double)])->Bool{
11 if 0 == pointArr.count {
12 return false
13 }
14 let lPath = UIBezierPath.init()
15 let l1stPoint = pointArr.first
16 lPath.move(to: CGPoint.init(x: l1stPoint!.0, y: l1stPoint!.1))
17
18 for i in 1..<pointArr.count {
19 let lP = pointArr[i]
20 lPath.addLine(to: CGPoint.init(x: lP.0, y: lP.1))
21 }
22
23 lPath.close()
24 return lPath.contains(CGPoint.init(x: point.0, y: point.1))
25 }
26
27 print(lPoints)
28 judgeIf(point: (0,0), isIn: lPoints)
29 judgeIf(point: (1,0), isIn: lPoints)
30 judgeIf(point: (3,-1), isIn: lPoints)
31 judgeIf(point: (0.5,2), isIn: lPoints)
32 judgeIf(point: (1,1), isIn: lPoints)
33 judgeIf(point: (2,1), isIn: lPoints)
34 judgeIf(point: (2,0.5), isIn: lPoints)
35 judgeIf(point: (2,1.5), isIn: lPoints)
36 judgeIf(point: (3,1), isIn: lPoints)
37 judgeIf(point: (3.3,8.1), isIn: lPoints)
38
39 judgeIf(point: (0,0), isIn: lTestPoints)
40 judgeIf(point: (0,1), isIn: lTestPoints)
41 judgeIf(point: (0.5,0.5), isIn: lTestPoints)
42 judgeIf(point: (0.5,0.7), isIn: lTestPoints)
43 judgeIf(point: (0.5,0.1), isIn: lTestPoints)
44 judgeIf(point: (0,8), isIn: lTestPoints)
45 judgeIf(point: (1,0), isIn: lTestPoints)
46
47 judgeIf(point: (1,0), isIn: lTestPointsOne)
48 judgeIf(point: (0,0), isIn: lTestPointsOne)