我有一个用户绘制的三角形,所有点都存储在一个n数组中。然后我想用这些数据中的直线绘制一个“正确的”三角形。任何人都可以指出我正确的方向。另一种方法是强制用户在三条单独的线上绘制三角形,然后使用每条线的起点和终点绘制三角形 - 但我宁愿避免这种方法。
感谢所有帮助
此致
答案 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)。然而,在某些情况下,情况并非如此,这使得可靠性大大降低。
干杯。