/* programa que reune pontos distantes de uma constante entre si em um unico ponto denominado vertice. Os pontos serao lidos de um arquivo no formato x y z da entrada definida pelo usuario */ #include #include #define NIL -1 #define SIZEX 512.0 #define SIZEY 512.0 FILE *entrada, *saida; float erro_pixel, foco; /* dist() - calcula a distancia entre dois ptos no espaco. Retorna a distancia calculada. */ float dist(p1, p2) float *p1, /* ponto 1 ; vetor[3] */ *p2; /* ponto 2 ; vetor[3] */ { float dist = 0.0; /* distancia entre p1 e p2 */ int i; for(i=0; i<3; i++) { dist += (p1[i] - p2[i]) * (p1[i] - p2[i]); } dist = sqrt(dist); return(dist); } verifica() /* verifica os ptos distantes de um certo valor e os transforma em extremos de arestas de um grafo */ { float **mpt; /* matriz de pontos no espaco */ int *mat; /* vetor utilizado no processamento do grafo */ int nptos; /* num. de ptos no espaco */ char s[255]; int i, j, x, y, vertx_2d, verty_2d; float d, raio_max, vertx, verty, vertz, k, const_cord_x, const_cord_y; int kte; /* raio_max = 7 * erro_pixel;*/ /* raio_max = 2*erro_pixel; */ printf("kte = "); scanf("%d",&kte); raio_max = kte*erro_pixel; const_cord_x = (SIZEX-1.0)/2.0; const_cord_y = (SIZEY-1.0)/2.0; nptos = 0; while((fgets(s, 254, entrada)) != NULL) nptos++; fprintf(stderr,"nptos = %d",nptos); mpt = (float **)malloc(nptos * sizeof(float *)); for(i=0; i