2016-06-15 2 views
2

Je veux calculer le area intérieur d'un objet qui est un objet fermé comme rectangle, square, polygon etc.Trouver zone à l'intérieur objet fermé dans ios

enter image description here

Je ne peux pas obtenir la solution exacte à faire S'il vous plaît aider à le trouver.

Merci.

+0

http://stackoverflow.com/questions/ 14220719/ios-comment-calculer-nombre-de-pixels-surface-entourée d'une courbe –

Répondre

2

J'utilise cette méthode qui me donnera area.It d'un objet fermé peut être utile pour vous .

-(double)areaWithXpts :(NSArray *)xpts withYpts :(NSArray *)ypts totalPoints :(int)numPoints 
{ 
    double area=0; 
    int j=numPoints-1; 
    for(int i=0 ; i < numPoints;i++) 
    { 
     area=area+([[xpts objectAtIndex:j] floatValue]+[[xpts objectAtIndex:i] floatValue])*([[ypts objectAtIndex:j] floatValue]-[[ypts objectAtIndex:i] floatValue]); 
     j=i; 
    } 
    double areaVal=area/2; 
    NSLog(@"Area is :%f",areaVal); 

    return areaVal; 
} 

Utilisation:

Tableau de X points

NSArray *xArray =[NSArray arrayWithObjects:@"0", @"10", @"10", @"29",nil]; 

Tableau de Y points de

NSArray *yArray =[NSArray arrayWithObjects:@"4", @"26", @"26", @"4",nil]; 

au total des points = nombre Array.

Remarque: Les tableaux x et y ont tous deux le même nombre.

double objectArea = [self areaWithXpts:xArray withYpts:yArray totalPoints:4]; 

Ou vous pouvez vérifier cette réponse aussi - Area calculation in objective c

Et à propos de la zone avec un objet de forme courbe: vous pouvez trouver des références de ce lien - Curve shape object area reference

2

Pour les polygones arbitraires avec Vertice des coordonnées connues, vous pouvez utiliser Shoelace formula

A = 1/2 * Abs(Sum{i=0..n-1} (X[i] * Y[i+1] - X[i+1] * Y[i])) 

où pour i=n-1 prendre i+1=0