gpt4 book ai didi

iphone - iPad 中的洪水填充速度太慢

转载 作者:搜寻专家 更新时间:2023-10-30 20:04:07 27 4
gpt4 key购买 nike

我在 iPad 上为我的一款填色应用程序使用 flood Filling。

该应用程序基本上是在图像的黑线内填充颜色,我可以毫无问题地执行此操作,但它太慢了。

我首先使用递归洪水填充,它的性能最差(由于 Stack Overflow),然后我能够使用 Stack 和以下代码将其转换为迭代,但这太慢了

-(void)floodFillAtPoint:(CGPoint)atPoint
{
Stack *stack = [[Stack alloc] init];

[stack push:[StackPoint pointWithPoint:atPoint]];
StackPoint *currentPoint = nil;
int counter = 0;
while ((currentPoint = [stack pop]))
{
CGPoint aPoint = currentPoint.point;//CGPointMake(pointPixel.x, pointPixel.y);
[self setColorAtPoint:aPoint];
CGPoint bPoint = aPoint;
bPoint.x+=1;
if([self checkForValidRegionAtPoint:bPoint])
[stack push:[StackPoint pointWithPoint:bPoint]];
bPoint = aPoint;
bPoint.x-=1;
if([self checkForValidRegionAtPoint:bPoint])
[stack push:[StackPoint pointWithPoint:bPoint]];
bPoint = aPoint;
bPoint.y+=1;
if([self checkForValidRegionAtPoint:bPoint])
[stack push:[StackPoint pointWithPoint:bPoint]];
bPoint = aPoint;
bPoint.y-=1;
if([self checkForValidRegionAtPoint:bPoint])
[stack push:[StackPoint pointWithPoint:bPoint]];
counter++;
}
[stack release];

}

有人能推荐一种在 iPad 设备上效果最好的替代方法吗?

最佳答案

使用 Objective-C 对象来表示每个像素会非常慢并且几乎没有什么好处。

使用不同的数据结构来表示您的位图,例如各种 CG* 位图封装机制之一。然后直接旋转位图中的位。它会越来越快。

关于iphone - iPad 中的洪水填充速度太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931552/

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