我正在绘制一个长方形的“鸡蛋”形状(在 iOS 上),并希望将其用作粒子的边界。我的想法是使用曲线路径来制作一个UIView
然后使用hitTest:withEvent:
或pointInside:withEvent:
强制边界碰撞。
当然,问题是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++ 解决方案持开放态度。