У меня есть UIView, который может вращаться при заданном угле поворота. Я попытался использовать кадры этого и другого представления в качестве hitTest - но, как вы можете видеть, это не работает.
Я полагаю, что после поворота кадр для hitTesting пересчитывается для повернутого вида, создавая кадр, отличный от того, который представлен в пользовательском интерфейсе (даже если у меня есть рамка вокруг кадра этого вида, это фактический кадр другой).
user.transform = CGAffineTransform(rotationAngle: CGFloat(user.userData.heading))
self.hitTestView.transform = CGAffineTransform(rotationAngle: CGFloat(user.userData.heading))
//hitTestView is the "cone" uiview with an image in it representing a cone.
//myTestZone is the purple box.
if self.hitTestView.frame.intersects(self.myTestZone.frame) {
self.hitTestView.showRed(bValue: true)
} else {
self.hitTestView.showRed(bValue: false)
}
Теперь я знаю, что я не должен использовать хит-тест с фреймами здесь - я искал что-то близкое - я должен был использовать математику, чтобы определить, пересекается ли этот «конус» с фиолетовой рамкой. Однако я не уверен, как лучше это делать.
Я ищу помощь по математике, чтобы вычислить, перекрывает ли конус (круговая часть) какую-либо часть другого вида (стационарный). Надеясь на некоторый рабочий код, если возможно.