Tworzę aplikację, w której próbuję uzyskać kolor bieżącego dotkniętego punktu, jeśli ten punkt nie jest czarny, to uruchomi iterację/rekursję i będzie przechowywać wszystkie nie czarne punkty w szyk. Używam tej funkcji dla iteracji:Sprawdzanie UIImage Pixel przez piksel
-(void)function:(CGFloat)positiveX:(CGFloat)positiveY:(CGFloat)negativeX:(CGFloat)negativeY
{
if (canDoPositiveX == YES)
{
//Checking in positive
if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(positiveX, positiveY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 1"])
{
CGPoint point = CGPointMake(positiveX, positiveY);
[array addObject:[NSValue valueWithCGPoint:point]];
[self function:positiveX+1 :positiveY :negativeX :negativeY];
}
else
{
canDoPositiveX = NO;
}
}
if (canDoPositiveY == YES)
{
//Checking in positive
if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(positiveX, positiveY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 0"])
{
CGPoint point = CGPointMake(positiveX, positiveY);
[array addObject:[NSValue valueWithCGPoint:point]];
[self function:positiveX :positiveY+1 :negativeX :negativeY];
}
else
{
canDoPositiveY = NO;
}
}
if (canDoNegativeX == YES)
{
//Checking in negative
if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(negativeX, negativeY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 1"])
{
CGPoint point = CGPointMake(negativeX, negativeY);
[array addObject:[NSValue valueWithCGPoint:point]];
[self function:positiveX :positiveY :negativeX-1 :negativeY];
}
else
{
canDoNegativeX = NO;
}
}
if (canDoNegativeY == YES)
{
//Checking in negative
if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(negativeX, negativeY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 1"])
{
negativeY -= 1;
CGPoint point = CGPointMake(negativeX, negativeY);
[array addObject:[NSValue valueWithCGPoint:point]];
[self function:positiveX :positiveY :negativeX :negativeY-1];
}
else
{
canDoNegativeY = NO;
}
}
NSLog(@"%u",[array count]);
}
Teraz jestem zmianę koloru tych punktach, które są w tablicy, ale tylko kolory linia prosta punktów, nie każdy piksel. Każda pomoc będzie naprawdę doceniana. Dzięki!
Czy to jest poprawna składnia dla metody? Nie wydaje mi się to właściwe. Nazwałeś swoją funkcję "funkcją"? Niezbyt wyraźne. Co to są CanDoNegativeY i canDoNegativeX? – Odrakir
To tylko kontrole (booleans). Ponadto nie mam pojęcia o rekursji tego typu f: P. Jeśli wiesz, jak to zrobić dobrze, uprzejmie powiedz mi. @Odrakir Mogę ci dać nagrodę w wysokości 100 za to. –
Wiem, że są booleanami, ale obawiam się, że nie mogę ci pomóc, jeśli nie rozumiem, co robi twój kod. Co oznaczają ci Booleans? – Odrakir