Advertisement
Guest User

Punkt.cpp

a guest
Nov 24th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. #include "punkt.h"
  2. #include <cmath>
  3. #include <vector>
  4.  
  5. Punkt::Punkt(){
  6. this->posX.resize(1);
  7. this->posY.resize(1);
  8. this->liczbaWymiarow.resize(2);
  9. }
  10.  
  11. Punkt::Punkt(double iksik, double igrek){
  12. this->posX.resize(1);
  13. this->posY.resize(1);
  14.  
  15. this->posX[0] = iksik;
  16. this->posY[0] = igrek;
  17. }
  18.  
  19. double Punkt::GetPunktX(int ktora){
  20. return this->posX[ktora];
  21. }
  22.  
  23. double Punkt::GetPunktY(int ktora){
  24. return this->posY[ktora];
  25. }
  26.  
  27. void Punkt::SetPunktX(int ktory, double wartosc){
  28. this->posX[ktory] = wartosc;
  29. }
  30.  
  31. void Punkt::SetPunktY(int ktory, double wartosc){
  32. this->posY[ktory] = wartosc;
  33. }
  34.  
  35. void Figura::DodajPunkt(double wspX, double wspY){
  36. this->posX.resize(posX.size() + 1);
  37. this->posY.resize(posY.size() + 1);
  38.  
  39. this->posX[posX.size()-1] = wspX;
  40. this->posY[posY.size()-1] = wspY;
  41.  
  42. int rozmiar=0;
  43.  
  44. rozmiar = liczbaWierzcholkow.size();
  45.  
  46. liczbaWierzcholkow.resize(rozmiar+1);
  47. }
  48.  
  49. double Figura::ObliczObwod(int jakafigura){
  50.  
  51. double sumaA=0, sumaB=0, sumaC=0, sumaD=0,SUMA=0;
  52.  
  53. if(liczbaWierzcholkow.size() == 3){
  54. sumaA += sqrt(pow((GetPunktX(0)-GetPunktX(1)),2) + pow((GetPunktY(0)-GetPunktY(1)),2));
  55. sumaB += sqrt(pow((GetPunktX(1)-GetPunktX(2)),2) + pow((GetPunktY(1)-GetPunktY(2)),2));
  56. sumaC += sqrt(pow((GetPunktX(0)-GetPunktX(2)),2) + pow((GetPunktY(0)-GetPunktY(2)),2));
  57. SUMA = sumaA + sumaB + sumaC;
  58. }
  59. if(liczbaWierzcholkow.size() == 4 && jakafigura == 0){
  60. sumaA += sqrt(pow(GetPunktX(0) - GetPunktX(1),2) + pow(GetPunktY(0) - GetPunktY(1),2));
  61.  
  62. SUMA = 4*sumaA;
  63. }
  64. else if(liczbaWierzcholkow.size() == 4 && jakafigura == 1){
  65. sumaA += sqrt(pow((GetPunktX(0)-GetPunktX(1)),2) + pow((GetPunktY(0)-GetPunktY(1)),2));
  66. sumaB += sqrt(pow((GetPunktX(1)-GetPunktX(2)),2) + pow((GetPunktY(1)-GetPunktY(2)),2));
  67. sumaC += sqrt(pow((GetPunktX(0)-GetPunktX(3)),2) + pow((GetPunktY(0)-GetPunktY(3)),2));
  68. sumaD += sqrt(pow((GetPunktX(2)-GetPunktX(3)),2) + pow((GetPunktY(2)-GetPunktY(3)),2));
  69.  
  70. SUMA = sumaA + sumaB + sumaC + sumaD;
  71. }
  72. return SUMA;
  73. }
  74.  
  75. Figura::Figura(){
  76. this->liczbaWierzcholkow = vector<Punkt> (1);
  77. }
  78.  
  79. double Kwadrat::ObliczPole(){
  80. double suma;
  81.  
  82. suma = sqrt(pow(GetPunktX(0) - GetPunktX(1),2) + pow(GetPunktY(0) - GetPunktY(1),2));
  83.  
  84. suma = suma*suma;
  85.  
  86. return suma;
  87. }
  88.  
  89. double Trojkat::ObliczPole(){
  90.  
  91. double pole;
  92. double sumaA=0, sumaB=0, sumaC=0, SUMA;
  93.  
  94. sumaA += sqrt(pow((GetPunktX(0)-GetPunktX(1)),2) + pow((GetPunktY(0)-GetPunktY(1)),2));
  95. sumaB += sqrt(pow((GetPunktX(1)-GetPunktX(2)),2) + pow((GetPunktY(1)-GetPunktY(2)),2));
  96. sumaC += sqrt(pow((GetPunktX(0)-GetPunktX(2)),2) + pow((GetPunktY(0)-GetPunktY(2)),2));
  97.  
  98. SUMA = (sumaA + sumaB + sumaC)/2;
  99.  
  100. pole = sqrt(SUMA*(SUMA-sumaA)*(SUMA-sumaC)*(SUMA-sumaB));
  101.  
  102. return pole;
  103. }
  104.  
  105. double Trapez::ObliczPole(){
  106.  
  107. double sumaA, sumaB, sumaC, sumaD;
  108. double pole, modul;
  109.  
  110. sumaA += sqrt(pow((GetPunktX(0)-GetPunktX(1)),2) + pow((GetPunktY(0)-GetPunktY(1)),2));
  111. sumaB += sqrt(pow((GetPunktX(1)-GetPunktX(2)),2) + pow((GetPunktY(1)-GetPunktY(2)),2));
  112. sumaC += sqrt(pow((GetPunktX(0)-GetPunktX(3)),2) + pow((GetPunktY(0)-GetPunktY(3)),2));
  113. sumaD += sqrt(pow((GetPunktX(2)-GetPunktX(3)),2) + pow((GetPunktY(2)-GetPunktY(3)),2));
  114.  
  115. pole = ((GetPunktX(0)*GetPunktY(1) - GetPunktY(0)*GetPunktX(1)) + (GetPunktX(1)*GetPunktY(2) - GetPunktY(1)*GetPunktX(2)) + (GetPunktX(2)*GetPunktY(3) - GetPunktY(2)*GetPunktX(3)) + (GetPunktX(3)*GetPunktY(0) - GetPunktY(3)*GetPunktX(0))) / 2;
  116.  
  117. modul = fabs(pole);
  118.  
  119. return modul;
  120. }
  121.  
  122. Kwadrat::Kwadrat(){
  123. this->jakafigura = 0;
  124. }
  125.  
  126. Trapez::Trapez(){
  127. this->jakafigura = 1;
  128. }
  129.  
  130. void Kwadrat::SetFigura(int figurka){
  131. this->jakafigura = figurka;
  132. }
  133.  
  134. void Trapez::SetFigura(int figurka){
  135. this->jakafigura = figurka;
  136. }
  137.  
  138. int Kwadrat::GetFigura(){
  139. return jakafigura;
  140. }
  141.  
  142. int Trapez::GetFigura(){
  143. return jakafigura;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement