merci Ginamin
qui a beaucoup aidé. il semble qu'ils devraient faire une sorte de construction en fonction pour retourner les coordonnées.
Je l'ai fait - 1. Trouver le point le plus haut et le plus bas dans les coordonnées y. 2. multipliez chaque point y par -1 et ajoutez-y les points les plus hauts et les plus bas. donc l'image est dessinée correctement.
Ceci est le code si cela peut aider n'importe qui.
//points array for example
points = [[NSArray alloc] initWithObjects:
[NSValue valueWithCGPoint:CGPointMake(0, 0)],
[NSValue valueWithCGPoint:CGPointMake(0, 90)],
[NSValue valueWithCGPoint:CGPointMake(100, 90)],
[NSValue valueWithCGPoint:CGPointMake(100, 0)],
[NSValue valueWithCGPoint:CGPointMake(0, 0],
nil];
CGPoint point;
NSValue *val;
NSDictionary * dict;
NSMutableArray *yPoints =[[NSMutableArray alloc] initWithCapacity:[points count]];
for (int i=0; i<[points count]; ++i) {
val = [points objectAtIndex:i];
point = [val CGPointValue];
dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:point.y] forKey:@"y"];
[yPoints addObject:dict];
}
//sort the array by the y value
NSSortDescriptor * yDescriptor =
[[NSSortDescriptor alloc] initWithKey:@"y"
ascending:YES];
NSArray * descriptors =
[NSArray arrayWithObjects:yDescriptor, nil];
NSArray * sortedArray =
[yPoints sortedArrayUsingDescriptors:descriptors];
//get the first and last points from the sorted array
yFactorHighest = [[[sortedArray lastObject] objectForKey:@"y"] intValue];
yFactorlowst = [[[sortedArray objectAtIndex:0] objectForKey:@"y"] intValue];
[yDescriptor release];
[yPoints release];
et la fonction de dessin -
- (void) playback:(NSString*)letter
{
NSUInteger pointsCount = [points count]-1;
// Render the current path
val1 = [points objectAtIndex:p];
point1 = [val1 CGPointValue];
point1.y=-(p1.y)+yFactorHighest+yFactorlowst;
val2 = [points objectAtIndex:p+1];
point2 = [val2 CGPointValue];
point2.y=-(p2.y)+yFactorHighest+yFactorlowst;
[self renderLineFromPoint:point1 toPoint:point2];
p++;
if(p<pointsCount)
[self performSelector:@selector(playback:) withObject:@"a" afterDelay:0.1];
}
im nouveau à la programmation, donc je l'espère, il n'y a aucun problème dans mon code. espère que cela vous aidera
Shani
Juste à l'envers ou à l'envers et en arrière comme représenté? – genpfault