Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. #include "5angle.h"
  2. #include <iostream>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6. Pentagon::Pentagon(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double x5, double y5)
  7.  
  8. {
  9.  
  10. //x1 = 0.0, y1 = 0.0, x2 = 0.0, y2 = 0.0, x3 = 0.0, y3 = 0.0, x4 = 0.0, y4 = 0.0, x5 = 0.0, y5 = 0.0;
  11.  
  12.  
  13. //if (((x3 - x1) / (x2 - x1) == (y3 - y1) / (y2 - y1)) && ((x4 - x2) / (x3 - x2) == (y4 - y2) / (y3 - y2)) && ((x5 - x3) / (x4 - x3) == (y5 - y3) / (y4 - y3)) && ((x1 - x4) / (x5 - x4) == (y1 - y4) / (y5 - y4)) && ((x2 - x5) / (x1 - x5) == (y2 - y5) / (y1 - y5))){
  14.  
  15. A = Point(x1, y1);
  16.  
  17. B = Point(x2, y2);
  18.  
  19. C = Point(x3, y3);
  20.  
  21. D = Point(x4, y4);
  22.  
  23. E = Point(x5, y5);
  24.  
  25. }
  26.  
  27. void Pentagon::set_length(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double x5, double y5)
  28.  
  29. {
  30.  
  31. A = Point(x1, y1);
  32.  
  33. B = Point(x2, y2);
  34.  
  35. C = Point(x3, y3);
  36.  
  37. D = Point(x4, y4);
  38.  
  39. E = Point(x5, y5);
  40. lenght1 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
  41.  
  42. lenght2 = sqrt(pow(x3 - x2, 2) + pow(y3 - y2, 2));
  43.  
  44. lenght3 = sqrt(pow(x4 - x3, 2) + pow(y4 - y3, 2));
  45.  
  46. lenght4 = sqrt(pow(x5 - x4, 2) + pow(y5 - y4, 2));
  47.  
  48. lenght5 = sqrt(pow(x5 - x1, 2) + pow(y5 - y1, 2));
  49.  
  50.  
  51.  
  52. }
  53.  
  54.  
  55.  
  56. void Pentagon::scale(double num)
  57.  
  58. {
  59.  
  60. set_length(A.getX()*num, A.getY()*num, B.getX()*num, B.getY()*num, C.getX()*num, C.getY()*num, D.getX()*num, D.getY()*num, E.getX()*num, E.getY()*num);
  61.  
  62. }
  63.  
  64. void Pentagon::turn(double angle)
  65.  
  66. {
  67.  
  68. double temp_x1 = A.getX();
  69.  
  70. double temp_y1 = A.getY();
  71.  
  72. double temp_x2 = B.getX();
  73.  
  74. double temp_y2 = B.getY();
  75.  
  76. double temp_x3 = C.getX();
  77.  
  78. double temp_y3 = C.getY();
  79.  
  80. double temp_x4 = D.getX();
  81.  
  82. double temp_y4 = D.getY();
  83.  
  84. double temp_x5 = E.getX();
  85.  
  86. double temp_y5 = E.getY();
  87.  
  88. A.setX((temp_x1 - Center.getX())*cos(angle) - (temp_y1 - Center.getY())*sin(angle) + Center.getX());
  89.  
  90. if (A.getX() > -0.001 && A.getX() < 0.001) A.setX(0);
  91.  
  92. A.setY((temp_x1 - Center.getX())*sin(angle) + (temp_y1 - Center.getY())*cos(angle) + Center.getY());
  93.  
  94. if (A.getY() > -0.001 && A.getY() < 0.001) A.setY(0);
  95.  
  96. B.setX((temp_x2 - Center.getX())*cos(angle) - (temp_y2 - Center.getY())*sin(angle) + Center.getX());
  97.  
  98. if (B.getX() > -0.001 && B.getX() < 0.001) B.setX(0);
  99.  
  100. B.setY((temp_x2 - Center.getX())*sin(angle) + (temp_y2 - Center.getY())*cos(angle) + Center.getY());
  101.  
  102. if (B.getY() > -0.001 && B.getY() < 0.001) B.setY(0);
  103.  
  104. C.setX((temp_x3 - Center.getX())*cos(angle) - (temp_y3 - Center.getY())*sin(angle) + Center.getX());
  105.  
  106. if (C.getX() > -0.001 && C.getX() < 0.001) C.setX(0);
  107.  
  108. C.setY((temp_x3 - Center.getX())*sin(angle) + (temp_y3 - Center.getY())*cos(angle) + Center.getY());
  109.  
  110. if (C.getY() > -0.001 && C.getY() < 0.001) C.setY(0);
  111.  
  112. D.setX((temp_x4 - Center.getX())*cos(angle) - (temp_y4 - Center.getY())*sin(angle) + Center.getX());
  113.  
  114. if (D.getX() > -0.001 && D.getX() < 0.001) D.setX(0);
  115.  
  116. D.setY((temp_x4 - Center.getX())*sin(angle) + (temp_y4 - Center.getY())*cos(angle) + Center.getY());
  117.  
  118. if (D.getY() > -0.001 && D.getY() < 0.001) D.setY(0);
  119.  
  120. E.setX((temp_x5 - Center.getX())*cos(angle) - (temp_y5 - Center.getY())*sin(angle) + Center.getX());
  121.  
  122. if (A.getX() > -0.001 && A.getX() < 0.001) A.setX(0);
  123.  
  124. E.setY((temp_x5 - Center.getX())*sin(angle) + (temp_y5 - Center.getY())*cos(angle) + Center.getY());
  125.  
  126. if (A.getY() > -0.001 && A.getY() < 0.001) A.setY(0);
  127.  
  128. }
  129. void Pentagon::sdvig(double num1,double num2){
  130.  
  131. double temp_x1 = A.getX();
  132.  
  133. double temp_y1 = A.getY();
  134.  
  135. double temp_x2 = B.getX();
  136.  
  137. double temp_y2 = B.getY();
  138.  
  139. double temp_x3 = C.getX();
  140.  
  141. double temp_y3 = C.getY();
  142.  
  143. double temp_x4 = D.getX();
  144.  
  145. double temp_y4 = D.getY();
  146.  
  147. double temp_x5 = D.getX();
  148.  
  149. double temp_y5 = D.getY();
  150.  
  151. A.setY(temp_y1 + num2);
  152. B.setY(temp_y2 + num2);
  153. C.setY(temp_y3 + num2);
  154. D.setY(temp_y4 + num2);
  155. E.setY(temp_y5 + num2);
  156. A.setX(temp_x1 + num1);
  157. B.setX(temp_x2 + num1);
  158. C.setX(temp_x3 + num1);
  159. D.setX(temp_x4 + num1);
  160. E.setX(temp_x5 + num1);
  161. }
  162.  
  163. void Pentagon::info()
  164.  
  165. {
  166.  
  167. std::cout << "Координаты точки A = (" << A.getX() << " , " << A.getY() << ")" << std::endl;
  168.  
  169. std::cout << "Координаты точки B = (" << B.getX() << " , " << B.getY() << ")" << std::endl;
  170.  
  171. std::cout << "Координаты точки C = (" << C.getX() << " , " << C.getY() << ")" << std::endl;
  172.  
  173. std::cout << "Координаты точки D = (" << D.getX() << " , " << D.getY() << ")" << std::endl;
  174.  
  175. std::cout << "Координаты точки E = (" << E.getX() << " , " << E.getY() << ")" << std::endl << std::endl;
  176.  
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement