From e8b87ed337797b08d91b23364725dead5aa69237 Mon Sep 17 00:00:00 2001 From: Anish Gulati Date: Fri, 27 Oct 2017 14:28:50 +0530 Subject: [PATCH] Added convexHull algo implementation --- ConvexHull/GeneralCaseExamples1.png | Bin 0 -> 27187 bytes ConvexHull/a.out | Bin 0 -> 46104 bytes ConvexHull/convexHullJarviss.cpp | 57 +++++++++++++++ ConvexHull/examplesGeneralCase211.png | Bin 0 -> 25381 bytes ConvexHull/examplesSpecialCase1.png | Bin 0 -> 24924 bytes ConvexHull/grahamScan.cpp | 98 ++++++++++++++++++++++++++ ConvexHull/lineIntersect.cpp | 50 +++++++++++++ ConvexHull/pointOrientation.png | Bin 0 -> 10863 bytes 8 files changed, 205 insertions(+) create mode 100644 ConvexHull/GeneralCaseExamples1.png create mode 100755 ConvexHull/a.out create mode 100644 ConvexHull/convexHullJarviss.cpp create mode 100644 ConvexHull/examplesGeneralCase211.png create mode 100644 ConvexHull/examplesSpecialCase1.png create mode 100644 ConvexHull/grahamScan.cpp create mode 100644 ConvexHull/lineIntersect.cpp create mode 100644 ConvexHull/pointOrientation.png diff --git a/ConvexHull/GeneralCaseExamples1.png b/ConvexHull/GeneralCaseExamples1.png new file mode 100644 index 0000000000000000000000000000000000000000..47b0e66fe78b4806a24c6d2d00ce14a4857eefdf GIT binary patch literal 27187 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
  • 95f{b?L7-jb6p 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 N|A^16IWKqn{}-Qi6u|%h literal 0 HcmV?d00001 diff --git a/ConvexHull/convexHullJarviss.cpp b/ConvexHull/convexHullJarviss.cpp new file mode 100644 index 000000000..1270a71f1 --- /dev/null +++ b/ConvexHull/convexHullJarviss.cpp @@ -0,0 +1,57 @@ +#include +#define PB push_back +typedef long long int ll; +using namespace std; + +struct point{ + int x, y; +}; +vector hull; + +int orientation(point p, point q, point r){ + int val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); + if(val == 0) // p, q, r are colinear + return 0; + else if(val > 0)// Clockwise + return 1; + else // CounterClockwise + return 2; +} + +void convexHull(point *points, int n){ + int l = 0; + if(n < 3) // Hull doesn't exist + return; + for(int i = 1;i < n; i++) // finding the left-most point + if(points[i].x < points[l].x) + l = i; + int start = l, q; + do{ + hull.PB(points[l]); + q = (l + 1) % n; + for(int i = 0;i < n; i++){ + // If i is more counterclockwise than current q, then update q + if(orientation(points[l], points[i], points[q]) == 2) + q = i; + } + l = q; + } + while(l != start); +} + + +int main(){ + int i, n, x, y; + ios_base::sync_with_stdio(false);cin.tie(NULL); + cin >> n; + point points[100100]; + for(i = 0;i < n; i++){ + cin >> x >> y; + points[i].x = x; + points[i].y = y; + } + convexHull(points, n); + for(i = 0;i < hull.size(); i++) + cout << "(" << hull[i].x << ", " << hull[i].y << ")\n"; + return 0; +} diff --git a/ConvexHull/examplesGeneralCase211.png b/ConvexHull/examplesGeneralCase211.png new file mode 100644 index 0000000000000000000000000000000000000000..1c78e337ec5eba7cdd55e57e4c24e82ff73fc9eb GIT binary patch literal 25381 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

    3p1g8~~0fh4rkln_DRCWac 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

    cMBHW9fG^NyE_4byR*2%<^AsY>zvu0In&!+ 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 literal 0 HcmV?d00001 diff --git a/ConvexHull/grahamScan.cpp b/ConvexHull/grahamScan.cpp new file mode 100644 index 000000000..d1fb78c5d --- /dev/null +++ b/ConvexHull/grahamScan.cpp @@ -0,0 +1,98 @@ +#include +#define PB push_back +typedef long long int ll; +using namespace std; + +struct point{ + int x, y; +}; +point p0; + +point nextToTop(stack &s){ + point p = s.top(); + s.pop(); + point res = s.top(); + s.push(p); + return res; +} + +int swap(point &p1, point &p2){ + point temp = p1; + p1 = p2; + p2 = temp; +} + +int disSq(point p1, point p2){ + return (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y); +} + +int orientation(point p, point q, point r){ + int val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); + if(val == 0) // colinear + return 0; + else if(val > 0) // clockwise + return 1; + else // counterClockwise + return 2; +} + +bool cmp(point p1, point p2){ + int o = orientation(p0, p1, p2); + if(o == 0) + return (disSq(p0, p2) >= disSq(p0, p1))? true : false; + else if(o == 2) + return true; + else + return false; +} + +void convexHull(point *points, int n){ + int ymin = points[0].y, min = 0, i; + for(i = 1;i < n; i++){ + int y = points[i].y; + if(y < ymin || (ymin == y && points[i].x < points[min].x)) + ymin = points[i].y, min = i; + } + swap(points[0], points[min]); + p0 = points[0]; + sort(&points[1], &points[1] + n - 1, cmp); // n - 1 signifies the number of elements + int m = 1; + for(i = 1;i < n; i++){ + while(i < n - 1 && orientation(p0, points[i], points[i+1]) == 0) + i++; + points[m] = points[i]; + m++; + } + if(m < 3) // Hull doesn't exist + return; + stack s; + s.push(points[0]); + s.push(points[1]); + s.push(points[2]); + for(i = 3;i < m; i++){ + while(orientation(nextToTop(s), s.top(), points[i]) != 2) + s.pop(); + s.push(points[i]); + } + while(!s.empty()){ + point p = s.top(); + cout << "(" << p.x << ", " << p.y << ")" << endl; + s.pop(); + } +} + +int main(){ + ios_base::sync_with_stdio(false);cin.tie(NULL); + point points[100100]; + int n; + cin >> n; + for(int i = 0;i < n; i++){ + int x, y; + cin >> x >> y; + points[i].x = x; + points[i].y = y; + } + convexHull(points, n); + return 0; +} + diff --git a/ConvexHull/lineIntersect.cpp b/ConvexHull/lineIntersect.cpp new file mode 100644 index 000000000..20531e841 --- /dev/null +++ b/ConvexHull/lineIntersect.cpp @@ -0,0 +1,50 @@ +#include +#define PB push_back +typedef long long int ll; +using namespace std; + +struct Point{ + int x, y; +}; + +// If collinear, do they intersect? i.e. does q lie on 'pr' +bool intersect(Point p, Point q, Point r){ + if(q.x <= max(p.x, r.x) && q.x >= min(p.x, r.x) && q.y <= max(p.y, r.y) && q.y >= min(p.y, r.y)) + return true; + return false; +} + +// 0 --> colinear +// 1 --> Clockwise +// 2 --> CounterClockwise +int orientation(Point p, Point q, Point r){ + int val = (q.y - p.y)*(r.x - q.x) - (q.x - p.x)*(r.y - q.y); + if(val == 0) return 0; + if(val > 0) return 1; + if(val < 0) return 2; +} + +int doIntersect(Point p1, Point q1, Point p2, Point q2){ + int o1 = orientation(p1, q1, p2); + int o2 = orientation(p1, q1, q2); + int o3 = orientation(p2, q2, p1); + int o4 = orientation(p2, q2, q1); + if (o1 != o2 && o3 != o4) + return true; + + // Special Cases + // p1, q1 and p2 are colinear and p2 lies on segment p1q1 + if (o1 == 0 && intersect(p1, p2, q1)) return true; + + // p1, q1 and p2 are colinear and q2 lies on segment p1q1 + if (o2 == 0 && intersect(p1, q2, q1)) return true; + + // p2, q2 and p1 are colinear and p1 lies on segment p2q2 + if (o3 == 0 && intersect(p2, p1, q2)) return true; + + // p2, q2 and q1 are colinear and q1 lies on segment p2q2 + if (o4 == 0 && intersect(p2, q1, q2)) return true; + + return false; // Doesn't fall in any of the above cases +} + diff --git a/ConvexHull/pointOrientation.png b/ConvexHull/pointOrientation.png new file mode 100644 index 0000000000000000000000000000000000000000..64ba2850e3259d63c760fa0aa3ae4839996e2820 GIT binary patch literal 10863 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 P6h={2O{QMTEc|}~_>3IJ literal 0 HcmV?d00001