Я рисую продолговатую форму «яйца» (на iOS) и хочу использовать ее как границу для частиц. Моя мысль состоит в том, чтобы использовать пути кривой, чтобы сделать UIView
, а затем использовать hitTest:withEvent:
или pointInside:withEvent:
для обеспечения граничного столкновения.Можно ли вызвать pointInside: на неправильной форме?
Проблема, конечно, в том, что UIView
всегда прямоугольный. Как бы вы решили проверить, находится ли точка внутри неправильной формы?
- (void)drawRect:(CGRect)rect {
int w = rect.size.width;
int h = rect.size.height;
CGContextBeginPath(context);
CGContextMoveToPoint(context, w/2, h/5);
CGContextAddCurveToPoint(context, w*0.1, h/4.3, w*0.1, h*0.82, w/2, h*0.8);
CGContextAddCurveToPoint(context, w*0.9, h*0.82, w*0.9, h/4.3, w/2, h*0.2);
Я использую openFrameworks, для чего это стоит. Этот код является только Obj-C, но я открыт для любых решений C++/obj-C++.
Возможно ли это на iOS? Мои 'CGPath' не рисуются как мои 'CGContextMoveToPoint' (и т. Д.). 'UIBezierPath' будет супер, но это тоже не на iOS. (Извините, обновление исходного вопроса, чтобы указать iOS сейчас) – buildsucceeded
CGPathContainsPoint находится в iOS 2.0 и более поздних версиях, а UIBezierPath - в iOS 3.2 и более поздних версиях. –
Спасибо за информацию об этом! – buildsucceeded