Programowanie w cpp (wykorzystanie opencv).
Jest ktoś w stanie pomóc? :)
Programowanie w cpp (wykorzystanie opencv).
Jest ktoś w stanie pomóc? :)
Oezu.
ctrl+c ctrl+v
? Wykorzystaj pętlę.Point input[3]; // punkty wejściowe (Twoje "p")
Point output[3]; // punkty wyjściowe (posortowane)
/* ... */
double distances[3];
Zacznij od zrobienia tak, aby w tablicy distances
znajdowały się odległości tych trzech punktów od środka układu współrzędnych. Wykorzystaj pętlę for
.
Polecam inne podejście: http://ideone.com/B3vK8K
#include <stdio.h>
#include <math.h>
typedef struct Point { int x,y; } Point;
typedef int CMP(const void *a,const void *b);
int cmpA(const Point *a,const Point *b)
{
double A=hypot(a->x,a->y),B=hypot(b->x,b->y);
return ((A)>(B))-((A)<(B));
}
int cmpB(const Point *a,const Point *b)
{
return ((a->y)>(b->y))-((a->y)<(b->y));
}
int cmpC(const Point *a,const Point *b)
{
return ((a->x)>(b->x))-((a->x)<(b->x));
}
int main()
{
Point p[4]={{500,662},{921,660},{495,149},{839,421}};
qsort(p+0,4,sizeof(Point),(CMP*)&cmpA);
qsort(p+1,3,sizeof(Point),(CMP*)&cmpB);
qsort(p+2,2,sizeof(Point),(CMP*)&cmpC);
for(size_t i=0;i<4;++i) printf("(%d,%d)\n",p[i].x,p[i].y);
return 0;
}