zoukankan      html  css  js  c++  java
  • 判断一个坐标点是否在封闭曲线内的方法(swift)

     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)
    学无止境,快乐编码。 没有一种不经过蔑视、忍受和奋斗就可以征服的命运。
  • 相关阅读:
    看起来像一个输入框的input,实际上是有两个input
    Actions类的一些主要方法
    selenium通过WebDriverWait实现ajax测试,实现等页面元素加载完成
    如何判断新打开窗口是否需要切换
    鼠标悬停
    Selenium WebDriver使用IE浏览器
    Element should have been select but was input
    58同城Java面试
    2个线程ABAB或者BABA循环输出
    使多个线程循环输出099099
  • 原文地址:https://www.cnblogs.com/Dast1/p/10528933.html
Copyright © 2011-2022 走看看