Skip to content
Snippets Groups Projects
Commit 09902102 authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Merge branch 'turn' into 'master'

Turn

down for what?

See merge request !1
parents 35d4123c 486ac124
Branches
No related tags found
No related merge requests found
...@@ -26,6 +26,24 @@ double distance(int xa, int ya, int xb,int yb){ ...@@ -26,6 +26,24 @@ double distance(int xa, int ya, int xb,int yb){
return (sqrt((xb-xa)*(xb-xa) + (yb-ya)*(yb-ya))); return (sqrt((xb-xa)*(xb-xa) + (yb-ya)*(yb-ya)));
} }
// Retorna o ângulo em relação a origem (0,0)
double angleFromOrigin(int x, int y) {
/**
* Y
* ^
* |--*
* | /|
* |/ |
* +----------> X
* |
* 1. Sabendo os valores de x e y, calculamos a hipotenusa
* 2. Com o valor de X e da Hip, temos o seno do ângulo formado entre a hipotenusa e o eixo X
* 3. Fazemos a função arco seno para pegar o valor do ângulo (em radianos)
*/
double hip = x*x + y*y;
return asin(x/hip);
}
int main(int argc, char const *argv[]) { int main(int argc, char const *argv[]) {
int t_size; int t_size;
double velocidade, distancia; double velocidade, distancia;
...@@ -48,10 +66,11 @@ int main(int argc, char const *argv[]) { ...@@ -48,10 +66,11 @@ int main(int argc, char const *argv[]) {
scanf("%d %d %d", &tuplas[i].x, &tuplas[i].y, &tuplas[i].t); scanf("%d %d %d", &tuplas[i].x, &tuplas[i].y, &tuplas[i].t);
} }
// calcular velocidade das rodas entre cada coordenada
for(int i=0; i < t_size; ++i) { for(int i=0; i < t_size; ++i) {
// pega o ângulo entre a posição do robô e o próximo ponto // Pega o ângulo entre a posição do robô e o próximo ponto
// gira o robô double angle = angleFromOrigin(tuplas[i].x, tuplas[i].y);
// Gira o robô
r.theta = angle;
// calcula a velocidade para as rodas // calcula a velocidade para as rodas
distancia = distance(r.x, r.y, tuplas[i].x, tuplas[i].y); distancia = distance(r.x, r.y, tuplas[i].x, tuplas[i].y);
velocidade = velocity(distancia, tuplas[i].t); velocidade = velocity(distancia, tuplas[i].t);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment