gpt4 book ai didi

ios - 检查 CGPathRef 中 CGPoints 数量的最有效方法

转载 作者:行者123 更新时间:2023-11-28 19:56:08 25 4
gpt4 key购买 nike

我想知道我的 CGMutablePathRef 是否有超过 3 个点!这种检查会经常发生,所以我正在寻找一种有效的解决方案。

我需要这样做的原因是因为在我的项目中用户绘制了一个形状。当用户拖动他/她的手指时,一个 CGPoint(手指的当前位置)被添加到路径中,并且当调用 touchEnded: 时添加一个物理主体。现在如果用户只是点击屏幕,CGMutablePathRef 中只有一个点它(我脑子里的推理),当我使用我的 CGMutablePathRef 添加物理主体时出现以下错误。

Assertion failed: (count >= 2), function CreateChain, file /SourceCache/PhysicsKit/PhysicsKit-6.5.4/PhysicsKit/Box2D/Collision/Shapes/b2ChainShape.cpp, line 45.

我想创建一个函数来调用它以 cgpathref 作为参数并计算点数直到它达到 3(如果没有 3 则结束)并返回一个 bool

谢谢 :)

最佳答案

如果要枚举CGPath 的元素,则必须使用CGPathApply,并且不支持提前终止。您必须枚举所有元素。

this answer 获取我的 Rob_forEachElementOfCGPath 函数,并像这样使用它:

int numberOfSegmentsInCGPath(CGPathRef path) {
__block int count = 0;
Rob_forEachElementOfCGPath(path, ^(const CGPathElement *element) {
if (element->type != kCGPathElementMoveToPoint) {
++count;
}
});
return count;
}

关于ios - 检查 CGPathRef 中 CGPoints 数量的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com