Guest User

Untitled

a guest
Mar 13th, 2015
334
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.                        
  2.             // wpisanie poprzednich wartości
  3.             x_pop = x;
  4.                         y_pop = y;
  5.                        
  6.             //Przekonwertowanie wyciagnietych danych z tekstu do postaci double
  7.                         x = Convert.ToDouble(wart_x);
  8.                         y = -Convert.ToDouble(wart_y);
  9.                        
  10.             //oblicza różnice miedzy poprzenimi położeniami i wyznacza ilość kroków
  11.                         roznica_xc = (x_pop-x)/0.1;
  12.                         roznica_yc = (y_pop-y)/0.1;
  13.  
  14.                        
  15.             //zaokrągla, Math.Floor(); zaokrągla do dołu, Ceiling do góry
  16.                         if(roznica_xc > 0 )roznica_x = Convert.ToInt32(Math.Floor(roznica_xc));
  17.                         else roznica_x = Convert.ToInt32(Math.Ceiling(roznica_xc));
  18.  
  19.                         if (roznica_yc> 0) roznica_y = Convert.ToInt32(Math.Floor(roznica_yc));
  20.                         else roznica_y = Convert.ToInt32(Math.Ceiling(roznica_yc));
  21.                        
  22.             //wyliczenie częsciowych kroków tzn. z 310,2, wpisuje do buforu 0,2 bo tego nie mogę wykonać
  23.                         bufor_x = bufor_x + (roznica_xc - roznica_x);
  24.                         bufor_y = bufor_y + (roznica_yc - roznica_y);
  25.                        
  26.                      
  27.                        /* wyznaczanie kierunków w których ma się poruszać silnik i zamiana ujemnych
  28.             wartości kroków na dodatnie, bo takie są przesyłane w ramce. Kierunek odpowiada
  29.             za to że bedą kręcić się w drugą stronę */
  30.                         if (roznica_xc < 0)
  31.                         {
  32.                             dir_X = 1;
  33.                             roznica_xc = -roznica_xc;
  34.                         }
  35.                         else dir_X = 0;
  36.                        
  37.                         if (roznica_yc < 0)
  38.                         {
  39.                             dir_Y = 1;
  40.                             roznica_yc = -roznica_yc;
  41.                         }
  42.                         else dir_Y = 0;
  43.                        
  44.                        
  45.             /*Jeśli bufor będzie większy od 1, czyli 1 peły krok, to dodaj do wyniku 1
  46.             Nastepnie albo dodaj do buforu 1 albo odejmij*/
  47.                        if (bufor_x >= 1)
  48.                         {
  49.                             wynikX = roznica_x + 1;
  50.                             bufor_x = bufor_x - 1;
  51.                         }
  52.  
  53.                         else if (bufor_x <= -1)
  54.                         {
  55.                             wynikX = roznica_x - 1;
  56.                             bufor_x = bufor_x + 1;
  57.                         }
  58.  
  59.                         else wynikX = roznica_x;
  60.  
  61.                         if (bufor_y >= 1)
  62.                         {
  63.                             wynikY = roznica_y + 1;
  64.                             bufor_y = bufor_y - 1;
  65.                         }
  66.                         else if (bufor_y <= -1)
  67.                         {
  68.                             wynikY = roznica_y - 1;
  69.                             bufor_y = bufor_y + 1;
  70.                         }
  71.                         else wynikY = roznica_y;
  72.                        
  73.             /*eśli ostatecznie wynik jest ujemny bo w buforze odjelismy 1 od zera, to zmień
  74.             na dodatnią wartość i przypisz kierunkowi 1 */
  75.                        
  76.             if (wynikX < 0) { dir_X = 1; wynikX = -wynikX; }
  77.                         if (wynikY < 0) { dir_Y = 1; wynikY = -wynikY; }
RAW Paste Data