Gonçalo Lopes
/
3
Diff: funcs.cpp
- Revision:
- 7:5fa6f21eb739
- Parent:
- 6:df6b8b2468d8
--- a/funcs.cpp Tue May 18 00:04:27 2021 +0000 +++ b/funcs.cpp Mon May 24 15:32:13 2021 +0000 @@ -10,14 +10,18 @@ #define pi 3.14159265359 + int *x_cel; + int *y_cel; int x_c; int y_c; + int next_x; int next_y; float auxx; float auxy; - double dist_odometria; - + int dist_odometria; + int x_end; + int y_end; //Funcao para criar um mapa simples com um quadrado no meio void read_map(int Map_Matrix[80][80]){ @@ -36,8 +40,8 @@ } } - -int distancia_prevista (int x , int y, int x_celula, int y_celula, float Angle, int Map_Matrix[80][80]){ +/* +void distancia_prevista (int x , int y, int x_celula, int y_celula, float Angle, int Map_Matrix[80][80],float dist_odometria){ // x_celula --> posição odometria x // y_celula --> posição odometria y @@ -66,14 +70,51 @@ y_c = ceil(auxy) - 1; - dist_odometria = ((next_x-x)*(next_x-x)) + ((next_y-y)*(next_y-y)); dist_odometria = sqrt(dist_odometria); - return(dist_odometria); + //return(dist_odometria); }// fim do while // usei o next_x_cel com erro de que ele faz de 5 em 5 cm // mas tb posso meter de 1 em 1 ou ate menos +*/ +/* +int DistanciaPrevBresh(int x, int y, int x_celula, int y_celula, float angle, int Map_Matrix[80][80] ){ + + if(angle < pi/2 && angle > 3*pi/2) + x_end = 80; + else + x_end = 0; + + if(angle < 0 && angle < pi) + y_end = 80; + else + y_end = 0; + + +int find = 0; + + x_cel = x_bresenham(x_celula, y_celula, x_end, y_end); + y_cel = y_bresenham(x_celula, y_celula, x_end, y_end); + + + while(find == 0){ + int i = 0; + if(Map_Matrix[x_cel[i]][y_cel[i]] == 1){ + find = 1; + } + else{ + i=i+1; + } + } + + dist_odometria = ((x_c-x_celula)*(x_c-x_celula)) + ((y_c-y_celula)*(y_c-y_celula)); + dist_odometria = sqrt(dist_odometria); + + return(dist_odometria); + } + +*/ \ No newline at end of file