Advertisement
dizzy94

lab9_workout

Apr 25th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. class trapez{
  7. private:
  8. double xA;
  9. double yA;
  10. double xB;
  11. double yB;
  12. double podstawaA;
  13. double podstawaB;
  14. public:
  15. void polozenie(double xA2, double yA2, double podA, double xB2, double yB2, double podB){
  16.  
  17. xA = xA2;
  18. yA = yA2;
  19. xB = xB2;
  20. yB = yB2;
  21. if (podA <= 0)
  22. podstawaA = 1;
  23. else
  24. podstawaA = podA;
  25. if (podB <= 0)
  26. podstawaB = 1;
  27. else
  28. podstawaB = podB;
  29. }
  30. void wypisz(){
  31.  
  32. cout << "\nWierzcholek A: (" << xA << "," << yA << ")";
  33. cout << "\nWierzcholek B: (" << xA + podstawaA << "," << yA << ")";
  34. cout << "\nWierzcholek C: (" << xB + podstawaB << "," << yB << ")";
  35. cout << "\nWierzcholek D: (" << xB << "," << yB << ")";
  36. cout << "\nPodstawa dolna: " << fabs(podstawaA);
  37. cout << "\nPodstawa gorna: " << fabs(podstawaB) << endl;
  38. }
  39. void symetria(double osX, double osY){
  40.  
  41. if (xA > osX || xA <= 0)
  42. podstawaA = -podstawaA;
  43. xA = 2 * osX - xA;
  44. yA = 2 * osY - yA;
  45. if (xB > osX || xB <= 0)
  46. podstawaB = -podstawaB;
  47. xB = 2 * osX - xB;
  48. yB = 2 * osY - yB;
  49.  
  50. }
  51.  
  52. void osiowa(double Y){
  53.  
  54. double pom1, pom2;
  55.  
  56. if ((xA || xB) > Y)
  57. {
  58. pom1 = fabs(xA) + fabs(Y);
  59. Y = Y - pom1;
  60. xA = Y;
  61.  
  62. pom2 = fabs(xB) + fabs(Y);
  63. Y = Y - pom2;
  64. xB = Y;
  65. }
  66.  
  67. if ((xA || xB) < Y)
  68. {
  69. pom1 = fabs(xA) + fabs(Y);
  70. Y = Y + pom1;
  71. xA = Y;
  72.  
  73. pom2 = fabs(xB) + fabs(Y);
  74. Y = Y + pom2;
  75. xB = Y;
  76. }
  77.  
  78. }
  79.  
  80. };
  81.  
  82.  
  83. class trojkat{
  84. private:
  85. double pozX;
  86. double pozY;
  87. double pod;
  88. double wys;
  89.  
  90. public:
  91. void polozenie(double pozX, double pozY, double pod, double wys){
  92.  
  93. this->pozX = pozX;
  94. this->pozY = pozY;
  95.  
  96. if (pod <= 0)
  97. this->pod = 1;
  98. else
  99. this->pod = pod;
  100. if (wys <= 0)
  101. this->wys = 1;
  102. else
  103. this->wys = wys;
  104. }
  105. void wypisz(){
  106.  
  107. cout << "\nWierzcholek A: (" << pozX - (pod / 2) << "," << pozY << ")";
  108. cout << "\nWierzcholek B: (" << pozX + (pod / 2) << "," << pozY << ")";
  109. cout << "\nWierzcholek C: (" << pozX << "," << pozY + wys << ")";
  110. cout << "\nPodstawa: " << pod;
  111. cout << "\nWysokosc: " << wys << endl;
  112. }
  113.  
  114. void skalowanie(double skal){
  115.  
  116. if (skal > 0)
  117. {
  118. this->pod *= skal;
  119. this->wys *= skal;
  120. }
  121. }
  122.  
  123. void osiowa(double Y){
  124.  
  125. double pom;
  126.  
  127. if (pozX > Y)
  128. {
  129. pom = fabs(pozX) + fabs(Y);
  130. Y = Y - pom;
  131. pozX = Y;
  132. }
  133. if (pozX < Y)
  134. {
  135. pom = fabs(pozX) + fabs(Y);
  136. Y = Y + pom;
  137. pozX = Y;
  138. }
  139.  
  140. }
  141.  
  142. };
  143.  
  144. int main(){
  145.  
  146. trapez figura;
  147.  
  148. double xA, yA;
  149. double xB, yB;
  150. double podstawaA, podstawaB;
  151. double osX, osY;
  152.  
  153. /*cout << "Podaj wsp. x dolnej podstawy: ";
  154. cin >> xA;
  155. cout << "Podaj wsp. y dolnej podstawy: ";
  156. cin >> yA;
  157. cout << "Podaj dlugosc podstawy: ";
  158. cin >> podstawaA;
  159. cout << "Podaj wsp. x gornej podstawy: ";
  160. cin >> xB;
  161. cout << "Podaj wsp. y gornej podstawy: ";
  162. cin >> yB;
  163. cout << "Podaj dlugosc gornej podstawy: ";
  164. cin >> podstawaB;*/
  165.  
  166. figura.polozenie(2, 1, 2, 3, 2, 1);
  167. //figura.polozenie(0, 1, 2, -1, 0, 1);
  168. //figura.polozenie(-1, -1, 2, -1, 1, 2);
  169.  
  170. figura.wypisz();
  171. cout << "\nPodaj wspolrzedne punktu symetrii srodkowej.";
  172. /*cout << "\nDla x =";
  173. cin >> osX;
  174. cout << "Dla y =";
  175. cin >> osY;*/
  176.  
  177.  
  178. figura.symetria(1, 1);
  179. cout << "\nNowe polozenie.";
  180. figura.wypisz();
  181.  
  182. figura.symetria(1, 1);
  183. cout << "\nPowrocenie do poczatkowych wartosci.";
  184. figura.wypisz();
  185. /*int index1 = 0, index2 = 0;
  186.  
  187. trojkat troj[3];
  188. trapez figura[3];
  189. //trojkat
  190. double x, y, podstawa, wysokosc, skal;
  191. //trapez
  192. double xA, yA, xB, yB, podstawaA, podstawaB, osX, osY;
  193. char c;
  194.  
  195. /*do
  196. {
  197.  
  198. cout << "Co chcesz zrobic?" << endl << "a - operacja na trojkacie" << endl << "b - operacja na trapezie" << endl << "w - wyjscie" << endl;
  199. cin >> c;
  200.  
  201. if (c == 'a'){
  202. cout << "Podaj wsp. x srodka podstawy: ";
  203. cin >> x;
  204. cout << "Podaj wsp. y srodka podstawy: ";
  205. cin >> y;
  206. cout << "Podaj dlugosc dolnej podstawy: ";
  207. cin >> podstawa;
  208. cout << "Podaj wysokosc trojkata: ";
  209. cin >> wysokosc;
  210.  
  211. troj[index1].polozenie(x, y, podstawa, wysokosc);
  212. troj[index1].wypisz();
  213.  
  214. cout << "Podaj wartosc skalowania: ";
  215. cin >> skal;
  216.  
  217. troj[index1].skalowanie(skal);
  218. cout << "Po operacji: ";
  219. troj[index1].wypisz();
  220. }
  221. if (c == 'b'){
  222. cout << "Podaj wsp. x srodka dolnej podstawy: ";
  223. cin >> xA;
  224. cout << "Podaj wsp. y srodka dolnej podstawy: ";
  225. cin >> yA;
  226. cout << "Podaj dlugosc dolnej podstawy: ";
  227. cin >> podstawaA;
  228. cout << "Podaj wsp. x srodka gornej podstawy: ";
  229. cin >> xB;
  230. cout << "Podaj wsp. y srodka gornej podstawy: ";
  231. cin >> yB;
  232. cout << "Podaj dlugosc gornej podstawy: ";
  233. cin >> podstawaB;
  234.  
  235. figura[index2].polozenie(xA, yA, podstawaA, xB, yB, podstawaB);
  236.  
  237. cout << "\nPodaj wspolrzedne punktu symetrii srodkowej.";
  238. cout << "\nDla x =";
  239. cin >> osX;
  240. cout << "Dla y =";
  241. cin >> osY;
  242.  
  243.  
  244. figura[index2].symetria(osX, osY);
  245. cout << "\nNowe polozenie.";
  246. figura[index2].wypisz();
  247.  
  248. figura[index2].symetria(osX, osY);
  249. cout << "\nPowrocenie do poczatkowych wartosci.";
  250. figura[index2].wypisz();
  251. }
  252.  
  253. } while (c != 'w');
  254. troj[0].polozenie(2, 2, 2, 2);
  255. troj[0].wypisz();
  256. troj[0].osiowa(-2);
  257. troj[0].wypisz();*/
  258.  
  259. /*figura[0].polozenie(2,2,2,2,2,2);
  260. figura[0].wypisz();
  261. figura[0].osiowa(-2);
  262. figura[0].wypisz();
  263. figura[0].osiowa(2);
  264. figura[0].wypisz();*/
  265. return 0;
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement