【问题标题】:Find area inside closed object in ios在ios中查找封闭对象内的区域
【发布时间】:2016-10-16 07:14:50
【问题描述】:

我想计算一个对象内的area,它是任何封闭对象,如rectanglesquarepolygon等。

我无法得到确切的解决方案。请帮助找到它。

谢谢。

【问题讨论】:

标签: ios geometry area


【解决方案1】:

对于具有已知顶点坐标的任意多边形,您可以使用Shoelace formula

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

i=n-1 在哪里取i+1=0

【讨论】:

    【解决方案2】:

    我正在使用这种方法,它会给我封闭对象的区域。它可能对你有帮助。

    -(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;
    }
    

    用法:

    X 点数组

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

    Y 点数组

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

    总点数 = 数组计数。

    注意:x 数组和 y 数组的计数相同。

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

    或者你也可以检查这个答案 - Area calculation in objective c

    关于带有曲线形状对象的区域:您可以从此链接找到参考 - Curve shape object area reference

    【讨论】:

      猜你喜欢
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 2021-06-09
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多