#swift #uibezierpath
#swift #uibezierpath
Вопрос:
У меня есть прямой UIBezierPath, который можно растягивать и поворачивать на любой угол:
Вот чего я хочу добиться:
Когда я касаюсь точки черной стрелки, она должна указывать isContain = true
и возвращать a CGPoint
, которая близка touchPoint
и должна находиться в середине path
(синяя стрелка).
Например: черная точка стрелки (x:251,y:302)
, но она должна вернуться (x:250, y:300)
, которая находится в середине path
Это то, что я пробовал, но оно работает только с горизонтальной линией
func hasForHorizontalLine(pt point: CGPoint) -> Bool{
let bezierRect = bounds
let origin = bezierRect.origin
let size = bezierRect.size
if origin.x <= point.x , origin.x size.width >= point.x, origin.y - lineWidth * 0.5 <= point.y , origin.y lineWidth * 0.5 >= point.y{
return true
}
else{
return false
}
}
Комментарии:
1. У вас есть угол красной линии относительно горизонтали или его уравнение?
2. @Sweeper Да, у меня есть угол