2017-02-02 14 views
0

Я хочу создать кривую Безье и создать границу столкновения для моего объекта.Как предотвратить закрытие пути Безье

let firstSurfacePoint = CGPoint(x: 30, y: 120) 
let secondSurfacePoint = CGPoint(x: 20, y: 200) 
let thirdSurfacePoint = CGPoint(x: 200, y: 300) 

let center = CGPoint(x: 150, y: 120) 
let radius: CGFloat = 120.00 
let arcWidth: CGFloat = 20.00  
let fourthSurfacePoint = CGPoint(x: 240, y: 300) 

func createCollisionPath(collision: UICollisionBehavior) { 

    let line = UIBezierPath() 

    line.moveToPoint(firstSurfacePoint) 
    line.addCurveToPoint(thirdSurfacePoint, controlPoint1: secondSurfacePoint, controlPoint2: secondSurfacePoint) 
    line.addLineToPoint(fourthSurfacePoint) 

    let currentPath = CAShapeLayer() 
    currentPath.path = line.CGPath 
    currentPath.strokeColor = UIColor.blackColor().CGColor 
    currentPath.fillColor = UIColor.clearColor().CGColor 
    currentPath.lineWidth = 1 
    view.layer.addSublayer(currentPath) 

    collision.addBoundaryWithIdentifier("curve", forPath: line) 

} 

такой же плохой результат я получаю, если я выбираю addArcWithCente

line.moveToPoint(firstSurfacePoint) 
line.addArcWithCenter(center, radius: radius, startAngle: CGFloat(M_PI), endAngle: CGFloat(M_PI/2), clockwise: false) 
line.addLineToPoint(fourthSurfacePoint) 

В этих двух попыток получить странные результаты, которые имеют решающее значение, так как я не могу создать надлежащее столкновение. В первой попытке мой объект проходит путь, как если бы это прямая линия от firstPoint до thirdPoint, а также во втором

Что я делаю неправильно?

My figure(without Arc)

My figure(with Arc)

+0

http://stackoverflow.com/q/40756457/2303865 –

ответ

0
currentPath.fillColor = nil 

или

currentPath.fillColor = UIColor.clearColor().CGColor 
+0

Спасибо, что работал, но не так как я подозреваю. Основной вопрос остается. Он не создает границу по этой линии. Моя объект по-прежнему проходит через путь, как если бы это строка от firstPoint до thirdPoint – dand1

+0

, вы уверены, что добавили свой движущийся объект в 'UICollectionBehavior'? Вы можете найти отличный учебник здесь https://www.raywenderlich.com/50197/uikit-dynamics-tutorial, если это поможет – tgyhlsb

+0

Можете ли вы посмотреть мое обновление, пожалуйста. – dand1

 Смежные вопросы

  • Нет связанных вопросов^_^