Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 21.15 KB | None | 0 0
  1. #include<iostream>
  2. #include <cmath>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <iostream>
  6. #include <fstream>
  7.  
  8. using namespace std;
  9.  
  10. #define xmax 20
  11. #define ymax 40
  12.  
  13. void zeros(double bol[][ymax], int len )
  14. {
  15.     for(int i=0;i<xmax;i++)
  16.     {
  17.         for(int j=0;j<ymax;j++)
  18.         {
  19.             bol[i][j]=0;
  20.         }
  21.     }
  22. }
  23. void ones(double bol[][ymax], int len )
  24. {
  25.     for(int i=0;i<xmax;i++)
  26.     {
  27.         for(int j=0;j<ymax;j++)
  28.         {
  29.             bol[i][j]=1;
  30.         }
  31.     }
  32. }
  33. void print_bol(double bol[][ymax], int len )
  34. {
  35.  
  36.     for(int i=0;i<xmax;i++)
  37.     {
  38.         for(int j=0;j<ymax;j++)
  39.         {
  40.             printf("%f \t",bol[i][j]);
  41.         }
  42.         printf("\n");
  43.     }
  44.     printf("\n");
  45.     printf("\n");
  46. }
  47. void print_bol_as_int(double bol[][ymax], int len)
  48. {
  49.  
  50.     for(int i=0;i<xmax;i++)
  51.     {
  52.         for(int j=0;j<ymax;j++)
  53.         {
  54.             printf("%d ",(int)bol[i][j]);
  55.         }
  56.         printf("\n");
  57.     }
  58.     printf("\n");
  59.     printf("\n");
  60. }
  61. void find_neighbour(double bol[][ymax], int len, double nx, double ny, double r)
  62. {
  63.     for(int i = 0; i < xmax; i++)
  64.     {
  65.         for(int j = 0; j < ymax; j++)
  66.         {
  67.             if( (i != 0 && i != xmax-1 ) && (j != 0 && j != ymax-1) && !(pow((i-nx),2)+pow((j-ny),2) < pow(r,2)))
  68.                 if(bol[i-1][j+1] == 1 || bol[i][j+1] == 1 || bol[i+1][j+1] == 1 ||
  69.                    bol[i-1][j] == 1 ||                      bol[i+1][j] == 1 ||
  70.                    bol[i-1][j-1] == 1 ||bol[i][j-1] == 1 || bol[i+1][j-1] == 1)
  71.                    bol[i][j] = 6;
  72.         }
  73.     }
  74. }
  75. int calc_amount_neigh(double bol[][ymax], int len)
  76. {
  77.     int suma = 0;
  78.     for(int i = 0; i < xmax; i++)
  79.     {
  80.         for(int j = 0; j < ymax; j++)
  81.         {
  82.             if(bol[i][j] == 6)
  83.                 suma = suma + 1;
  84.         }
  85.     }
  86.     return suma;
  87. }
  88. double return_X0(int ii, int jj, double ny, double nx, double r) // funkcja zwracajaca wspolrzedna X - punktu na przecieciu w. kierunkowego z okregiem
  89. {
  90.     //Y = -X + a
  91.     double i = (double)ii;
  92.     double j = (double)jj;
  93.     double A = j + i;
  94.     double A_ny = 0;
  95.     A_ny = A + ny*(-1); // zmienna przechowywujaca wartosc po podstawieniu Y do wzoru(x - nx) + ( y - ny ) -> ( -x +    i+j-ny)
  96.  
  97.     double a = 2; // wspolczynnik przy x^2
  98.     double b = (-2) * nx + (-2) * A_ny; // suma ostateczna wspolczynnikow przy x
  99.     double c = pow(A_ny,2) - (r*r) + (nx*nx); // wyraz wolny
  100.  
  101.     double delta = b*b - 4*a*c;
  102.     double x1 = -1;
  103.     double x2 = -1;
  104.     //double X = -1;
  105.     double return_X = -1;
  106.  
  107.     if(delta > 0)
  108.     {
  109.         x1 = (b*(-1) - sqrt(delta) ) / (2*a);
  110.         x2 = (b*(-1) + sqrt(delta) ) / (2*a);
  111.  
  112.         if(abs(x1 - i) < abs(x2 - i))
  113.             return_X = x1;
  114.         else
  115.             return_X = x2;
  116.     }
  117.     else if(delta == 0)
  118.     {
  119.         return_X = (-1)*b / 2*a;
  120.        
  121.     }
  122.     else if(delta < 0)
  123.         cout <<"";
  124.     else
  125.         printf("Nieznane zachowanie");
  126.  
  127.     return return_X; // zwrocenie wspolrzednej X
  128. }
  129. double return_X1(int ii, int jj, double ny, double nx, double r)
  130. {
  131.     //Y = j
  132.     double i = (double)ii;
  133.     double j = (double)jj;
  134.  
  135.     double a = 1;
  136.     double b = nx * (-2);
  137.     double c = pow((j-ny),2) + pow(nx,2) - r*r;
  138.  
  139.     double delta = b*b - 4*a*c;
  140.     double x1 = -1;
  141.     double x2 = -1;
  142.     double return_X = -1;
  143.  
  144.     if(delta > 0)
  145.     {
  146.         x1 = (b*(-1) - sqrt(delta) ) / (2*a);
  147.         x2 = (b*(-1) + sqrt(delta) ) / (2*a);
  148.  
  149.         if(abs(x1 - i) < abs(x2 - i))
  150.             return_X = x1;
  151.         else
  152.             return_X = x2;
  153.     }
  154.     else if(delta == 0)
  155.     {
  156.         return_X = (-1)*b / 2*a;
  157.        
  158.     }
  159.     else if(delta < 0)
  160.         cout <<"";
  161.     else
  162.         printf("Nieznane zachowanie");
  163.  
  164.    
  165.     return return_X; // zwrocenie wspolrzednej X
  166. }
  167. double return_X2(int ii, int jj, double ny, double nx, double r) // funkcja zwracajaca wspolrzedna X - punktu na przecieciu w. kierunkowego z okregiem
  168. {
  169.     //Y = X + a;
  170.     double i = (double)ii;
  171.     double j = (double)jj;
  172.     double A = j - i;
  173.     double A_ny = 0;
  174.     A_ny = A + ny*(-1); // zmienna przechowywujaca wartosc po podstawieniu Y do wzoru(x - nx) + ( y - ny ) -> ( -x +    i+j-ny)
  175.  
  176.     double a = 2; // wspolczynnik przy x^2
  177.     double b = nx*(-2)  + 2* A_ny; // suma ostateczna wspolczynnikow przy x
  178.     double c = pow(A_ny,2) - (r*r) + (nx*nx); // wyraz wolny
  179.  
  180.     double delta = b*b - 4*a*c;
  181.  
  182.     double x1 = -1;
  183.     double x2 = -1;
  184.     double return_X = -1;
  185.  
  186.     if(delta > 0)
  187.     {
  188.         x1 = (b*(-1) - sqrt(delta) ) / (2*a);
  189.         x2 = (b*(-1) + sqrt(delta) ) / (2*a);
  190.  
  191.         if(abs(x1 - i) < abs(x2 - i))
  192.             return_X = x1;
  193.         else
  194.             return_X = x2;
  195.     }
  196.     else if(delta == 0)
  197.     {
  198.         return_X = (-1)*b / 2*a;
  199.        
  200.     }
  201.     else if(delta < 0)
  202.         cout << "";
  203.     else
  204.         printf("Nieznane zachowanie");
  205.  
  206.    
  207.     return return_X; // zwrocenie wspolrzednej X
  208. }
  209. double return_X3(int i, int j, double ny, double nx, double r)
  210. {
  211.     double ii = (double)i;
  212.     return ii;
  213. }
  214. double countY0(double XXX, int i, int j)
  215. {
  216.     double YYY = -1;
  217.     double ii = (double)i;
  218.     double jj = (double)j;
  219.     YYY = XXX*(-1) + jj + ii;
  220.  
  221.     return YYY;
  222. }
  223. double countY1(double XXX, int i, int j)
  224. {
  225.     double jj = (double)j;
  226.     return jj;
  227. }
  228. double countY2(double XXX, int i, int j)
  229. {
  230.     double YYY = -1;
  231.     double ii = (double)i;
  232.     double jj = (double)j;
  233.     YYY = XXX + jj - ii;
  234.  
  235.     return YYY;
  236. }
  237. double countY3(int i, int j, double ny, double nx,double r)
  238. {
  239.     double a = 1;
  240.     double b = ny * (-2);
  241.     double c = pow(i-nx,2) + pow((ny),2) - r*r;
  242.  
  243.     double delta = b*b - 4*a*c;
  244.     double y1 = -1;
  245.     double y2 = -1;
  246.     double return_Y = -1;
  247.  
  248.     if(delta > 0)
  249.     {
  250.         y1 = (b*(-1) - sqrt(delta) ) / (2*a);
  251.         y2 = (b*(-1) + sqrt(delta) ) / (2*a);
  252.  
  253.         if(abs(y1 - j) < abs(y2 - j))
  254.             return_Y = y1;
  255.         else
  256.             return_Y = y2;
  257.     }
  258.     else if(delta == 0)
  259.     {
  260.         return_Y = (-1)*b / 2*a;
  261.        
  262.     }
  263.     else if(delta < 0)
  264.         cout <<"";
  265.     else
  266.         printf("Nieznane zachowanie");
  267.  
  268.     return return_Y; // zwrocenie wspolrzednej Y
  269.  
  270. }
  271. double calculate_distance(double xxx, double yyy, int i, int j)
  272. {
  273.     double ii = (double)i;
  274.     double jj = (double)j;
  275.     double distance = -1;
  276.  
  277.     distance = sqrt(    pow(xxx-ii,2)    +   pow(yyy-jj,2)    );
  278.     if(xxx == -1)
  279.         distance = -1;
  280.     if(yyy == -1)
  281.         distance = -1;
  282.  
  283.     return distance;
  284. }
  285. int return_quarter(int i, int j, double r)
  286. {
  287.     int quarter = -1;
  288.     int R = (int)r;
  289.     // 0 7 6
  290.     // 1 8 5
  291.     // 2 3 4
  292.     if(i > xmax/2 -1 && j > ymax/2 -1)
  293.         quarter = 1;
  294.     if(i > xmax/2 -1 && j < ymax/2 -1)
  295.         quarter = 2;
  296.     if(i < xmax/2 -1 && j < ymax/2 -1)
  297.         quarter = 3;
  298.     if(i < xmax/2 -1 && j > ymax/2 -1)
  299.         quarter = 4;
  300.  
  301.     if(i == xmax/2 - 1 && j >= ymax/2 + R )
  302.         quarter = 5;                           ///dany punkt znajduje sie na osi X miedzy cwiartkami 1 i 4
  303.     if(i >= xmax/2 + R   && j == ymax/2 - 1)
  304.         quarter = 6;                            ///dany punkt znajduje sie na osi Y miedzy cwiartkami 1 i 2
  305.     if(i == xmax/2 - 1  && j <= ymax/2 - R)
  306.         quarter = 7;                        ///dany punkt znajduje sie na osi X miedzy cwiartkami 2 i 3
  307.     if(i <= xmax/2 - R  && j == ymax/2 - 1)
  308.         quarter = 8;                        ///dany punkt znajduje sie na osi Y miedzy cwiartkami 3 i 4
  309.     if(i == xmax/2 -1 && j == ymax/2 - 1)
  310.         quarter = 100;
  311.  
  312.     return quarter;
  313. }
  314.  
  315. int main()
  316. {
  317.     //  D2Q9 model
  318.     // Rozmiar siatki
  319.  
  320.     double bol[xmax][ymax]; // cala siatka
  321.  
  322.     zeros(bol, xmax);
  323.  
  324.     double r = 8;
  325.     double nx = xmax*0.5;  // środek kuli x
  326.     double ny = ymax*0.5;  //środek kuli y
  327.     cout << xmax/2 << "," << ymax/2 <<endl;
  328.     ofstream plik("D:\pliczek.txt");
  329.  
  330.     if(plik.is_open())
  331.         cout <<" Plik dziala"<< endl;
  332.     else
  333.         cout << "Plik nie dziala" << endl;
  334.  
  335.     int counter = 0;
  336.     for(int i=0;i<xmax;i++)
  337.     {
  338.         for(int j=0; j<ymax; j++)
  339.         {
  340.             if(pow((i-nx),2)+pow((j-ny),2) < pow(r,2))  {
  341.                 bol[i][j] = pow((i-nx),2)+pow((j-ny),2) < pow(r,2);
  342.                 counter++;
  343.             }
  344.         }
  345.     }
  346.     print_bol_as_int(bol, xmax);
  347.  
  348.     find_neighbour(bol, xmax, nx, ny, r); // liczba 6 oznacza ze komorka jest przecieta przez sfere
  349.  
  350.     print_bol_as_int(bol, xmax);
  351.  
  352.     double DISTANCE[xmax][ymax][8];
  353.  
  354.     for(int i = 0; i < xmax; i++)
  355.     {
  356.         for(int j = 0; j < ymax; j++)
  357.         {
  358.             for(int k = 0; k < 8; k++)
  359.             {
  360.                 DISTANCE[i][j][k] = -1;
  361.             }
  362.         }
  363.     }
  364.  
  365.     double XXX = -1;
  366.     double YYY = -1;
  367.  
  368.  
  369.  
  370.     plik << " 0  7  6 " << endl << " 1  8  5 " << endl << " 2  3  4 " << endl;
  371.  
  372.     plik << "x - skladowa punktu w przestrzeni siatki" <<endl <<"y - skladowa punktu w przestrzeni siatki" << endl
  373.     << "xO - skladowa punktu na przecieciu okregu z vektorem" << endl << "yO - skladowa punktu na przecieciu okregu z vektorem"<<endl
  374.     << "D - odleglosc (x,y) od (xO,yO) - punktu w przestrzeni od punkty przeciecia z vektorem   " << endl << endl << endl;
  375.  
  376.     for(int i = 0; i < xmax; i++)
  377.     {
  378.         int quarter = -1;
  379.         for(int j = 0; j < ymax; j++)
  380.         {
  381.                     if(bol[i][j] == 1)
  382.                         continue;
  383.     // 0 7 6
  384.     // 1 8 5
  385.     // 2 3 4           
  386.                        
  387. //                      if(bol[i][j] == 6 )
  388. //                      {
  389.                             double iii= i + 0.5;
  390.                             double jjj= j + 0.5;
  391.                             cout << iii << "  WUUUUUUT ?" << endl;
  392.                             cout << jjj << "  WUUUUUUT 2?" << endl;
  393.                            
  394.                             quarter = return_quarter(iii,jjj,r);
  395.  
  396.                             if(quarter == 2)
  397.                             {
  398.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  399.                                 YYY = countY0(XXX,iii,jjj);
  400.  
  401.                                 plik << "====== START =======" << endl;
  402.                                 DISTANCE[i][j][4] = calculate_distance(XXX,YYY,iii,jjj);
  403.                                 if(DISTANCE[i][j][4] != -1)
  404.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][4] << "quarter = " << quarter <<"-> vector=" << 4 <<endl;
  405.  
  406.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  407.                                 YYY = countY3(iii,jjj,ny,nx,r);
  408.  
  409.                                 DISTANCE[i][j][5] = calculate_distance(XXX,YYY,iii,jjj);
  410.                                 if(DISTANCE[i][j][5] != -1)
  411.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][5] << "quarter = " << quarter <<"-> vector=" << 5 <<endl;
  412.  
  413.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  414.                                 YYY = countY2(XXX,iii,jjj);
  415.                                 if(YYY < jjj)
  416.                                 {
  417.                                     DISTANCE[i][j][2] = calculate_distance(XXX,YYY,iii,jjj);
  418.                                     if(DISTANCE[i][j][2] != -1)
  419.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][2] << "quarter = " << quarter <<"-> vector=" << 2 <<endl;
  420.                                 }
  421.                                 else
  422.                                 {
  423.                                     DISTANCE[i][j][6] = calculate_distance(XXX,YYY,iii,jjj);
  424.                                     if(DISTANCE[i][j][6] != -1)
  425.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][6] << "quarter = " << quarter <<"-> vector=" << 6 <<endl;
  426.                                 }
  427.  
  428.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  429.                                 YYY = countY1(XXX,iii,jjj);
  430.                                 DISTANCE[i][j][3] = calculate_distance(XXX,YYY,iii,jjj);
  431.                                 if(DISTANCE[i][j][3] != -1)
  432.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][3] << "quarter = " << quarter <<"-> vector=" << 3 <<endl;
  433.                             }
  434.                             else if(quarter == 4)
  435.                             {
  436.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  437.                                 YYY = countY0(XXX,iii,jjj);
  438.  
  439.                                 plik << "====== START =======" << endl;
  440.                                 DISTANCE[i][j][0] = calculate_distance(XXX,YYY,iii,jjj);
  441.                                 if(DISTANCE[i][j][0] != -1)
  442.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][0] << "quarter = " << quarter <<"-> vector=" << 0 <<endl;
  443.  
  444.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  445.                                 YYY = countY1(XXX,iii,jjj);
  446.                                 DISTANCE[i][j][7] = calculate_distance(XXX,YYY,iii,jjj);
  447.                                 if(DISTANCE[i][j][7] != -1)
  448.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][7] << "quarter = " << quarter <<"-> vector=" << 7 <<endl;
  449.  
  450.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  451.                                 YYY = countY2(XXX,iii,jjj);
  452.                                 if(YYY > jjj)
  453.                                 {
  454.                                     DISTANCE[i][j][6] = calculate_distance(XXX,YYY,iii,jjj);
  455.                                     if(DISTANCE[i][j][6] != -1)
  456.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][6] << "quarter = " << quarter <<"-> vector=" << 6 <<endl;
  457.                                 }
  458.                                 else
  459.                                 {
  460.                                     DISTANCE[i][j][2] = calculate_distance(XXX,YYY,iii,jjj);
  461.                                     if(DISTANCE[i][j][2] != -1)
  462.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][2] << "quarter = " << quarter <<"-> vector=" << 2 <<endl;
  463.                                 }
  464.  
  465.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  466.                                 YYY = countY3(iii,jjj,ny,nx,r);
  467.                                 DISTANCE[i][j][1] = calculate_distance(XXX,YYY,iii,jjj);
  468.                                 if(DISTANCE[i][j][1] != -1)
  469.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][1] << "quarter = " << quarter <<"-> vector=" << 1 <<endl;
  470.                             }
  471.                             else if(quarter == 1)
  472.                             {
  473.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  474.                                 YYY = countY0(XXX,iii,jjj);
  475.  
  476.                                 plik << "====== START =======" << endl;
  477.                                 if(YYY < jjj)
  478.                                 {
  479.                                     DISTANCE[i][j][0] = calculate_distance(XXX,YYY,iii,jjj);
  480.                                     if(DISTANCE[i][j][0] != -1)
  481.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][0] << "quarter = " << quarter <<"-> vector=" << 0 <<endl;
  482.                                 }
  483.                                 else
  484.                                 {
  485.                                     DISTANCE[i][j][4] = calculate_distance(XXX,YYY,iii,jjj);
  486.                                     if(DISTANCE[i][j][4] != -1)
  487.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][4] << "quarter = " << quarter <<"-> vector=" << 4 <<endl;
  488.                                 }
  489.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  490.                                 YYY = countY1(XXX,iii,jjj);
  491.                                 DISTANCE[i][j][3] = calculate_distance(XXX,YYY,iii,jjj);
  492.                                 if(DISTANCE[i][j][3] != -1)
  493.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][3] << "quarter = " << quarter <<"-> vector=" << 3 <<endl;
  494.  
  495.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  496.                                 YYY = countY2(XXX,iii,jjj);
  497.                                 DISTANCE[i][j][2] = calculate_distance(XXX,YYY,iii,jjj);
  498.                                 if(DISTANCE[i][j][2] != -1)
  499.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][2] << "quarter = " << quarter <<"-> vector=" << 2 <<endl;
  500.  
  501.  
  502.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  503.                                 YYY = countY3(iii,jjj,ny,nx,r);
  504.                                 DISTANCE[i][j][1] = calculate_distance(XXX,YYY,iii,jjj);
  505.                                 if(DISTANCE[i][j][1] != -1)
  506.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][1] << "quarter = " << quarter <<"-> vector=" << 1 <<endl;
  507.                             }
  508.                             else if(quarter == 3)
  509.                             {
  510.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  511.                                 YYY = countY0(XXX,iii,jjj);
  512.  
  513.                                 plik << "====== START =======" << endl;
  514.                                 if(YYY < jjj)
  515.                                 {
  516.                                     DISTANCE[i][j][0] = calculate_distance(XXX,YYY,iii,jjj);
  517.                                     if(DISTANCE[i][j][0] != -1)
  518.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][0] << "quarter = " << quarter <<"-> vector=" << 0 <<endl;
  519.                                 }
  520.                                 else
  521.                                 {
  522.                                     DISTANCE[i][j][4] = calculate_distance(XXX,YYY,iii,jjj);
  523.                                     if(DISTANCE[i][j][4] != -1)
  524.                                         plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][4] << "quarter = " << quarter <<"-> vector=" << 4 <<endl;
  525.                                 }
  526.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  527.                                 YYY = countY3(iii,jjj,ny,nx,r);
  528.                                 DISTANCE[i][j][5] = calculate_distance(XXX,YYY,iii,jjj);
  529.                                 if(DISTANCE[i][j][5] != -1)
  530.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][5] << "quarter = " << quarter <<"-> vector=" << 5 <<endl;
  531.  
  532.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  533.                                 YYY = countY2(XXX,iii,jjj);
  534.                                 DISTANCE[i][j][6] = calculate_distance(XXX,YYY,iii,jjj);
  535.                                 if(DISTANCE[i][j][6] != -1)
  536.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][6] << "quarter = " << quarter <<"-> vector=" << 6 <<endl;
  537.  
  538.  
  539.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  540.                                 YYY = countY1(XXX,iii,jjj);
  541.                                 DISTANCE[i][j][7] = calculate_distance(XXX,YYY,iii,jjj);
  542.                                 if(DISTANCE[i][j][7] != -1)
  543.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][7] << "quarter = " << quarter <<"-> vector=" << 7 <<endl;
  544.                             }
  545.                             else if(quarter == 5)
  546.                             {
  547.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  548.                                 YYY = countY0(XXX,iii,jjj);
  549.  
  550.                                 plik << "====== START =======" << endl;
  551.  
  552.                                 DISTANCE[i][j][0] = calculate_distance(XXX,YYY,iii,jjj);
  553.                                 if(DISTANCE[i][j][0] != -1)
  554.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][0] << "quarter = " << quarter <<"-> vector=" << 0 <<endl;
  555.  
  556.  
  557.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  558.                                 YYY = countY2(XXX,iii,jjj);
  559.                                 DISTANCE[i][j][2] = calculate_distance(XXX,YYY,iii,jjj);
  560.                                 if(DISTANCE[i][j][2] != -1)
  561.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][2] << "quarter = " << quarter <<"-> vector=" << 2 <<endl;
  562.  
  563.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  564.                                 YYY = countY3(iii,jjj,ny,nx,r);
  565.                                 DISTANCE[i][j][1] = calculate_distance(XXX,YYY,iii,jjj);
  566.                                 if(DISTANCE[i][j][1] != -1)
  567.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][1] << "quarter = " << quarter <<"-> vector=" << 1 <<endl;
  568.                             }
  569.                             else if(quarter == 6)
  570.                             {
  571.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  572.                                 YYY = countY0(XXX,iii,jjj);
  573.  
  574.                                 plik << "====== START =======" << endl;
  575.  
  576.                                 DISTANCE[i][j][4] = calculate_distance(XXX,YYY,iii,jjj);
  577.                                 if(DISTANCE[i][j][4] != -1)
  578.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][4] << "quarter = " << quarter <<"-> vector=" << 4 <<endl;
  579.  
  580.  
  581.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  582.                                 YYY = countY2(XXX,iii,jjj);
  583.                                 DISTANCE[i][j][2] = calculate_distance(XXX,YYY,iii,jjj);
  584.                                 if(DISTANCE[i][j][2] != -1)
  585.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][2] << "quarter = " << quarter <<"-> vector=" << 2 <<endl;
  586.  
  587.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  588.                                 YYY = countY1(XXX,iii,jjj);
  589.                                 DISTANCE[i][j][1] = calculate_distance(XXX,YYY,iii,jjj);
  590.                                 if(DISTANCE[i][j][1] != -1)
  591.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][1] << "quarter = " << quarter <<"-> vector=" << 1 <<endl;
  592.                             }
  593.                             else if(quarter == 7)
  594.                             {
  595.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  596.                                 YYY = countY0(XXX,iii,jjj);
  597.  
  598.                                 plik << "====== START =======" << endl;
  599.  
  600.                                 DISTANCE[i][j][4] = calculate_distance(XXX,YYY,i,j);
  601.                                 if(DISTANCE[i][j][4] != -1)
  602.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][4] << "quarter = " << quarter <<"-> vector=" << 4 <<endl;
  603.  
  604.  
  605.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  606.                                 YYY = countY2(XXX,iii,jjj);
  607.                                 DISTANCE[i][j][6] = calculate_distance(XXX,YYY,iii,jjj);
  608.                                 if(DISTANCE[i][j][6] != -1)
  609.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][6] << "quarter = " << quarter <<"-> vector=" << 6 <<endl;
  610.  
  611.                                 XXX = return_X3(iii,jjj,ny,nx,r);
  612.                                 YYY = countY3(iii,jjj,ny,nx,r);
  613.                                 DISTANCE[i][j][5] = calculate_distance(XXX,YYY,iii,jjj);
  614.                                 if(DISTANCE[i][j][5] != -1)
  615.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][5] << "quarter = " << quarter <<"-> vector=" << 5 <<endl;
  616.                             }
  617.                             else if(quarter == 8)
  618.                             {
  619.                                 XXX = return_X0(iii,jjj,ny,nx,r);
  620.                                 YYY = countY0(XXX,iii,jjj);
  621.  
  622.                                 plik << "====== START =======" << endl;
  623.  
  624.                                 DISTANCE[i][j][0] = calculate_distance(XXX,YYY,iii,jjj);
  625.                                 if(DISTANCE[i][j][0] != -1)
  626.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][0] << "quarter = " << quarter <<"-> vector=" << 0 <<endl;
  627.  
  628.  
  629.                                 XXX = return_X2(iii,jjj,ny,nx,r);
  630.                                 YYY = countY2(XXX,iii,jjj);
  631.                                 DISTANCE[i][j][6] = calculate_distance(XXX,YYY,iii,jjj);
  632.                                 if(DISTANCE[i][j][6] != -1)
  633.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][6] << "quarter = " << quarter <<"-> vector=" << 6 <<endl;
  634.  
  635.                                 XXX = return_X1(iii,jjj,ny,nx,r);
  636.                                 YYY = countY1(XXX,iii,jjj);
  637.                                 DISTANCE[i][j][7] = calculate_distance(XXX,YYY,iii,jjj);
  638.                                 if(DISTANCE[i][j][7] != -1)
  639.                                     plik <<"x="<< iii << "\t " <<"y="<< jjj << "\t" <<"xO="<< XXX << "\t " <<"yO="<< YYY << "\t" <<"D="<< DISTANCE[i][j][7] << "quarter = " << quarter <<"-> vector=" << 7 <<endl;
  640.  
  641.                             }
  642.                             else if(quarter == 100)
  643.                             {
  644.                                 cout << "Middle of circle" << endl;
  645.                             }
  646.                             else
  647.                             {
  648.                                 plik << "Cos nie dziala i = " << iii << " j=" << jjj << " quarter = " << quarter << endl;
  649.                             }
  650.                        
  651.                         //}
  652.                     }
  653.             }
  654.  
  655.  
  656.  
  657.     printf("Press Any Key to Continue\n");
  658.  
  659.     return 0;
  660. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement