.NET 4.x Где можно посмотреть реализацию алгоритма Джарвиса или Грэхема - C#
Формулировка задачи:
Здравствуйте.
Кто-нить знает где можно посмотреть реализацию алгоритма Джарвиса или Грэхема на C#?
Заранее благодарен!
Решение задачи: «.NET 4.x Где можно посмотреть реализацию алгоритма Джарвиса или Грэхема»
textual
Листинг программы
public static List<Point> CreateConvexHull(List<Point> source)
{
//1. create a stack of points
Stack<Point> result = new Stack<Point>();
//2. sort the incoming points
SortByPolarAngle(source);
//3. init stack with 2 first points
result.Push(source[0]);
result.Push(source[1]);
//4. perform test for every other point
for (int i = 2; i < source.Count; i++)
{
//5. the angle between NEXT_TO_TOP[S], TOP[S], and p(i) makes a nonleft turn -> remove if not a vertex
while (ConterClockWise(result.ElementAt(1), result.Peek(), source[i]) > 0)
{
result.Pop();
}
result.Push(source[i]);
}
return new List<Point>(result);
}