Advertisement
Andrey1101

Untitled

Apr 25th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.09 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #include "src/num/Rational.h"
  4. #include "src/num/ErrorControlled.h"
  5.  
  6. #include "src/geom/convex_giftwrap.h"
  7.  
  8. //Здесь задаётся тип данных, который используется для вычислений
  9. typedef double Num;
  10. //typedef Rational Num;
  11. //typedef ErrorControlled Num;
  12.  
  13. int main(){
  14.     SPointSet<Num> point_set;
  15.  
  16.     //Пример входных данных
  17.     point_set.n=19;
  18.     point_set.points=new SPoint<Num>[point_set.n];
  19.     point_set.points[0].x=1;    point_set.points[0].y=5;
  20.     point_set.points[1].x=2;    point_set.points[1].y=6;
  21.     point_set.points[2].x=3;    point_set.points[2].y=5;
  22.     point_set.points[3].x=4;    point_set.points[3].y=5;
  23.     point_set.points[4].x=4;    point_set.points[4].y=4;
  24.     point_set.points[5].x=5;    point_set.points[5].y=5;
  25.     point_set.points[6].x=5;    point_set.points[6].y=6;
  26.     point_set.points[7].x=7;    point_set.points[7].y=4;
  27.     point_set.points[8].x=8;    point_set.points[8].y=3;
  28.     point_set.points[9].x=7;    point_set.points[9].y=6;
  29.     point_set.points[10].x=5;   point_set.points[10].y=7;
  30.     point_set.points[11].x=3;   point_set.points[11].y=3;
  31.     point_set.points[12].x=5;   point_set.points[12].y=2;
  32.     point_set.points[13].x=9;   point_set.points[13].y=3;
  33.     point_set.points[14].x=10;  point_set.points[14].y=6;
  34.     point_set.points[15].x=8;   point_set.points[15].y=8;
  35.     point_set.points[16].x=9;   point_set.points[16].y=8;
  36.     point_set.points[17].x=6;   point_set.points[17].y=9;
  37.     point_set.points[18].x=2;   point_set.points[18].y=8;
  38.  
  39.     //Вычисляем выпуклую оболочку набора точек pset, результат сохраняем в chain
  40.     SChain<Num> chain;
  41.     CalcConvexHull(point_set,chain);
  42.  
  43.     //Печатаем координаты точек и их индексы
  44.     for(unsigned i=0; i<chain.n; i++){
  45.         printf("%d ",chain.Indexes[i]);
  46.         PrintCoords(chain.point_set[chain.Indexes[i]]);
  47.         printf("\n");
  48.     }
  49.  
  50.     delete[] chain.Indexes;
  51.     delete[] point_set.points;
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement