Skocz do zawartości

Metoda sprawdzająca


XxBurzaxX

Polecane posty

Dopisz metodę która pozwala sprawdzić czy z podanych współrzędnych da się utworzyć prostokąt zakładamy że przekątne są sobie równe oraz odcinki AB=CD też są równe należy wykorzystać metodę odległości

 

 

#include <cstdlib>

#include <iostream>

#include <math.h>

 

using namespace std;

 

class punkt

{ public:

double x;

double y;

 

punkt()

{x=0;y=0;}; //konstruktor domyslny

punkt(double xx,double yy) //konstruktor parametryczny

{x=xx;y=yy;};

 

punkt(punkt &p1) //konstruyktor kopiujacy

{x=p1.x;

y=p1.y;

};

 

double odloglosc(punkt &p1) //metoda

{

return sqrt(pow((p1.x-x),2)+pow((p1.y-y),2));};

 

void wyswietl() //metody dostepowe

{cout<<x<<", "<<y<<", "<<endl;};

};

 

class prostokat

{

punkt *tab;

bool sprawdz(punkt t[3])

{

if(0) return true;

else return false; };

 

public:

prostokat(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy)

{ tab = new punkt[3];

tab[0].x=ax; tab[2].x=cx;

tab[0].y=ay; tab[2].y=cy;

tab[1].x=bx; tab[3].x=dx;

tab[1].y=by; tab[3].y=dy;

};

prostokat(punkt tab1[3])

{

tab = new punkt[3];

tab[0].x=tab[0].x; tab[2].x=tab[2].x;

tab[0].y=tab[0].y; tab[2].y=tab[2].y;

tab[1].x=tab[1].x; tab[3].x=tab[3].x;

tab[1].y=tab[1].y; tab[3].y=tab[3].y;

};

prostokat(punkt p1, punkt p2,punkt p3, punkt p4)

{

tab = new punkt[3];

tab[0].x=p1.x; tab[2].x=p3.x;

tab[0].y=p1.y; tab[2].y=p3.y;

tab[1].x=p2.x; tab[3].x=p4.x;

tab[1].y=p2.y; tab[3].y=p4.y;

};

~prostokat()

{ delete tab;};

 

};

 

int main(int argc, char *argv[])

{

punkt p1; //0.0

punkt p2(1,3); //1.3

punkt p3(p1); //0.0

punkt p4(p2); //1.3

prostokat(0,1,1,2,2,0,0,0);

 

cout<<p1.odloglosc(p2)<<endl; //wywolanie funkcji z obiektem jako parametr wejsciowy

 

p1.wyswietl();

p2.wyswietl();

p3.wyswietl();

p4.wyswietl();

 

 

system("PAUSE");

return EXIT_SUCCESS;

}

Link do komentarza
Udostępnij na innych stronach

Wydaje mi się, że skoro zakładamy, że AB=CD i przekątne są sobie równe, to wystarczy sprawdzić, czy odcinki AC i BD są sobie równe. Odległość między dwoma punktami w przestrzeni obliczasz z twierdzenia pitagorasa. Pamiętaj, że współrzędne są typu double, więc nie porównuj długości operatorem ==, tylko sprawdzaj, czy wartość bezwzględna z różnicy długości jest mniejsza niż jakiś mały epsylon (dopuszczalny błąd).

 

---------------

edit: widzę, że nawet w kodzie masz już metodę na obliczenie odległości między dwoma punktami.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Gość
Temat jest zablokowany i nie można w nim pisać.
×
×
  • Utwórz nowe...