【发布时间】:2025-12-30 15:50:07
【问题描述】:
我有一个包含 5 个 CGPoints(v0、v1、v2、v3、v4)的数组,它们是这样实现的形状的顶点:
_arrayVertex = [[NSMutableArray alloc] initWithObjects:[NSValue valueWithCGPoint:v0], [NSValue valueWithCGPoint:v1], [NSValue valueWithCGPoint:v2], [NSValue valueWithCGPoint:v3], [NSValue valueWithCGPoint:v4], nil];
然后,我用这些点计算面积:
- (float)calculateArea {
float area = 0;
int N = (int)_arrayVertex.count;
for (int i = 0; i < N-1; i++) {
float term = ([_arrayVertex[i] CGPointValue].x * [_arrayVertex[i+1 % N] CGPointValue].y -
[_arrayVertex[i+1 % N] CGPointValue].x * [_arrayVertex[i] CGPointValue].y)/2.0;
area += term;
}
return fabsf(area);
}
面积计算正确吗?我错过了什么吗?提前谢谢你。
【问题讨论】:
-
你在哪里添加绿色形状?在哪个视图中?
-
在主视图中,查看更新的问题。
-
_lines.frame = self.view.bounds? -
形状现在更接近点,但它的绘制超出了屏幕的限制,并且点不适合顶点
标签: ios objective-c geometry polygon area