diff --git a/roads.c b/roads.c index 11e6c32..f27042f 100644 --- a/roads.c +++ b/roads.c @@ -13,6 +13,10 @@ void svg_line(Vertex* a, Vertex* b) { printf("", a->x, a->y, b->x, b->y); } +void svg_circle(int x, int y, int r) { + printf("",x,y,r); +} + void svg_grey_line(Vertex* a, Vertex* b) { printf("", a->x, a->y, b->x, b->y); } @@ -135,10 +139,14 @@ roadNodeY* grid_getNearestRoadNode(Vertex *v) { for(i=x-1; i= 0 && i < nbXSubDivision && y >= 0 && y < nbYSubDivision) { + nr = grid_getNearNodes2(i,j); - tmp = nr[0]; + + int ind; + //tmp = nr[0]; fprintf(stderr,"passage %d\t\t %d %d\n",count,i,j); - while(tmp != NULL) { + for(tmp = nr[0], ind = 0; tmp != NULL && ind < maxNodesInGrid; tmp = nr[ind++]) { + fprintf(stderr,"noed\n"); int dist = distBetween(v,tmp->v); if(dist < distance) { distance = dist; @@ -187,15 +195,16 @@ void carreY() { addRoadNode(roada,rn); } - for(i=0;i<20;i++) { + for(i=0;i<30;i++) { rn = (roadNodeY*)malloc(sizeof(roadNodeY)); v = (Vertex*) malloc(sizeof(Vertex)); v->x = (i+1)*22; - v->y = ((i+1)%5)*(61%(i+2))+112; + v->y = ((i+1)%5)*(61%(i+2))+120; rn->v = v; if(i==4) {fprintf(stderr,"x : %d y : %d\n",toX(v),toY(v));} if(v->x < 800 && v->y < 600) { + fprintf(stderr,"Noed : %d\n",i); if(i != 0) if(grid_getNearestRoadNode(v) != NULL) rn = grid_getNearestRoadNode(v); //rn = rn; @@ -206,14 +215,14 @@ void carreY() { roadPointY *rd = roada; while(rd->next != NULL) { svg_line(rd->rn->v,rd->next->rn->v); - + svg_circle(rd->rn->v->x,rd->rn->v->y,2); rd = rd->next; } rd = roadb; while(rd->next != NULL) { svg_line(rd->rn->v,rd->next->rn->v); - + svg_circle(rd->rn->v->x,rd->rn->v->y,2); rd = rd->next; } } diff --git a/roads.h b/roads.h index 678eed2..0bff92d 100644 --- a/roads.h +++ b/roads.h @@ -38,7 +38,7 @@ roadNodeY ****nodesGrid; short nbXSubDivision; short nbYSubDivision; short maxSegmentSize; -short maxNodesInGrid = 10; +short maxNodesInGrid = 16; int quarterWidth; int quarterHeight;