sto creando un'applicazione in cui sto cercando di ottenere il colore del punto toccato corrente, se questo punto non è nero allora eseguirà un'iterazione/ricorsione e memorizzerà tutti i punti non neri in array. Sto usando questa funzione per l'iterazione:Controllo pixel UIImage per pixel
-(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]);
}
Ora, sto cambiando il colore di quei punti che sono in ordine, ma solo i colori linea retta di punti, non tutti i pixel. Qualsiasi aiuto sarà molto apprezzato. Grazie!
è che la sintassi corretta per un metodo? Non sembra giusto per me. Hai chiamato la tua funzione "funzione"? Non molto esplicito. Cosa sono canDoNegativeY e canDoNegativeX? – Odrakir
Sono solo assegni (booleani). Inoltre, non ho idea di questa ricorrenza di tipo f: P. Se sai come farlo bene, gentilmente dimmelo. @Odrakir Posso darti generosità del valore di 100 per quello. –
So che sono booleani, ma temo di non poterti aiutare se non capisco cosa fa il tuo codice. Cosa significano quei booleani? – Odrakir