首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollisionBehavior是否将开放路径视为封闭路径?

UICollisionBehavior是否将开放路径视为封闭路径?
EN

Stack Overflow用户
提问于 2015-03-14 07:09:57
回答 1查看 290关注 0票数 2

如果我定义了一个开放的UIBezierPath并将其设置为碰撞边界:

代码语言:javascript
复制
_containerPath = [UIBezierPath bezierPathWithArcCenter:center
                                                radius:radius
                                            startAngle:M_PI
                                              endAngle:0
                                             clockwise:NO];

[_collisionBehavior addBoundaryWithIdentifier:@"containerBoundary" forPath:_containerPath];                                                     

然后打开重力,在“碗”内部释放的物体会尊重下边界,但从碗上方释放的物体会停留在假设不存在的一侧。这是预期的行为吗?

在图片中,红色矩形是从上方放置的;动态动画制作器的参考视图是浅灰色矩形。它从上面掉下来,停在看不见的线上。

我已经确认,如果你翻转bezier路径,红色矩形实际上尊重曲线边界;我也尝试过使用开放(双边)三角形而不是曲线路径-同样的结果。

EN

回答 1

Stack Overflow用户

发布于 2015-03-14 08:20:59

您看到的行为似乎与使用bezier路径填充时看到的行为相同。如果你画一个"V“并填充它,它的行为就像是一个封闭的路径。有了碰撞边界,您可以通过添加两条线来创建一个开放的"V“,这两条线的名称分别为:fromPoint:toPoint:。我不知道有没有别的办法来解决这个问题。对于你的半圆,我假设你可以用上面的方法添加一系列直线来近似它。在使用50到100行之前,我已经近似了圆,它们看起来与使用BezierPathWithOvalInRect得到的非常接近。我不知道当作为碰撞边界使用时,这是否会给系统带来严重的负担。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29043415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档