public static void ExtremePoint(List <Point> Points) { Console.WriteLine("Points/n"); foreach (var item in Points) { Console.WriteLine(item.x + "," + item.y + "\n"); } List <ExtremePoints> ExtPoints = Points.Select(x => new ExtremePoints() { Point = x }).ToList(); List <ExtremePoints> ExtPoints1 = new List <ExtremePoints>(); for (int i = 0; i < Points.Count; i++) { for (int j = 0; j < Points.Count; j++) { if (i != j) { for (int k = 0; k < Points.Count; k++) { if (j != k) { for (int l = 0; l < Points.Count; l++) { if (k != l) { Polygon pol = new Polygon(); pol.Vertex.AddLast(Points[i]); pol.Vertex.AddLast(Points[j]); pol.Vertex.AddLast(Points[k]); if (Lab3.CheckPointInclusion(pol, Points[l])) { ExtPoints[l].IsExtreme = false; //Console.WriteLine("Triangle {0},{1}|{2},{3}|{4},{5}| Query {6},{7} REsult:{8}|{9}", // Points[i].x, Points[i].y, Points[j].x, Points[j].y, Points[k].x, // Points[k].y, Points[l].x, Points[l].y, Lab3.CheckPointInclusion(pol, Points[l]) ? "Inside" : "Outside", // Lab3.RayCasting(pol, Points[l]) % 2 == 1 ? "Inside" : "Outside"); } } } } } } } } Console.WriteLine("Sorted Points\n"); foreach (var item in ExtPoints.Where(m => m.IsExtreme)) { Console.WriteLine(item.Point.x + "," + item.Point.y + "\n"); } Console.ReadKey(); }
static void Main(string[] args) { try { // Lab1.getData(); //Lab2.getData(); //Lab2.getDataInt(); Lab3.getData(); // Lab4.getData(); } catch (Exception e) { Console.WriteLine("Error: " + e); } }