diff --git a/.gitignore b/.gitignore
index ba639253ded2d4f9ad9077d46d1c77acc89c1210..b51b7a44ba8df7493bcb7084d497d68a0e2ed5f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
 robot
+graph
+table
diff --git a/main.c b/main.c
index 3811bce263c632ddbf5cb9332017a366796873ae..97d15493b23ac677bd0db4e26d08d022f7dc9802 100644
--- a/main.c
+++ b/main.c
@@ -2,6 +2,7 @@
 #include <math.h>
 #include <stdlib.h>
 
+#define PI 3.14159265
 #define L 0.15
 // L = Distancia centro da roda - eixo em cm
 
@@ -38,10 +39,10 @@ double angleFromOrigin(int x, int y) {
      * |
      * 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)
+     * 3. Fazemos a função arco cosseno para pegar o valor do ângulo (em graus)
      */
-    double hip = x*x + y*y;
-    return asin(x/hip);
+    double hip = sqrt(x*x + y*y);
+    return acos(x/hip) * 180/PI;
 }
 
 int main(int argc, char const *argv[]) {
@@ -49,6 +50,12 @@ int main(int argc, char const *argv[]) {
   double velocidade, distancia;
   Tuple *tuplas;
   Robot r = {0, 0, 0};
+  FILE *graph = fopen("./graph", "w");
+  FILE *out = fopen("./table", "w");
+  if(graph == NULL || out == NULL) {
+      puts("Erro ao criar arquivos de saída.");
+      exit(1);
+  }
   puts("Quantos pontos há na lista? Mínimo de 10 elementos.");
   scanf("%d", &t_size);
   if(t_size < 10) {
@@ -69,13 +76,17 @@ int main(int argc, char const *argv[]) {
   for(int i=0; i < t_size; ++i) {
       // Pega o ângulo entre a posição do robô e o próximo ponto
       double angle = angleFromOrigin(tuplas[i].x, tuplas[i].y);
+      fprintf(graph, "r %f\n", angle - r.theta);
       // Gira o robô
       r.theta = angle;
       // calcula a velocidade para as rodas
       distancia = distance(r.x, r.y, tuplas[i].x, tuplas[i].y);
       velocidade = velocity(distancia, tuplas[i].t);
+      fprintf(graph, "w %f\n", velocidade);
   }
-  // gerar tabela e grafico
+
+  fclose(graph);
+  fclose(out);
 
   return 0;
 }