使用iPhone从点列表中创建直线三角形

时间:2011-03-22 14:34:09

标签: iphone geometry

我有一个用户绘制的三角形,所有点都存储在一个n数组中。然后我想用这些数据中的直线绘制一个“正确的”三角形。任何人都可以指出我正确的方向。另一种方法是强制用户在三条单独的线上绘制三角形,然后使用每条线的起点和终点绘制三角形 - 但我宁愿避免这种方法。

感谢所有帮助

此致

1 个答案:

答案 0 :(得分:4)

Bjarke,

就绘制三角形而言,它非常简单。您可以使用UIBezierPaths或CGPath来完成绘图:

UIBezierPath *triangle = [UIBezierPath bezierPath]; 
[triangle moveToPoint:firstPoint];
[triangle addLineToPoint:secondPoint];
[triangle addLineToPoint:thirdPoint];
[triangle addLineToPoint:firstPoint]; 
[triangle stroke]; // [triangle fill] would work too

至于确定哪些点是你的顶点,这有点复杂,而且与数学有关。可能对此有所帮助的两件事是:

1)一旦顶点被击中,线的斜率将改变。因此,您可以针对前一点检查每个点,并且如果斜率(Δx/ delta y)与前一斜率不同(在原始三角形是手绘的内部),则最有可能达到顶点。

2)顶点(在大多数情况下)是三角形的末端(min / max x和y)。然而,在某些情况下,情况并非如此,这使得可靠性大大降低。

干杯。