Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <math.h>
- using namespace std;
- class trapez{
- private:
- double xA;
- double yA;
- double xB;
- double yB;
- double podstawaA;
- double podstawaB;
- public:
- void polozenie(double xA2, double yA2, double podA, double xB2, double yB2, double podB){
- xA = xA2;
- yA = yA2;
- xB = xB2;
- yB = yB2;
- if (podA <= 0)
- podstawaA = 1;
- else
- podstawaA = podA;
- if (podB <= 0)
- podstawaB = 1;
- else
- podstawaB = podB;
- }
- void wypisz(){
- cout << "\nWierzcholek A: (" << xA << "," << yA << ")";
- cout << "\nWierzcholek B: (" << xA + podstawaA << "," << yA << ")";
- cout << "\nWierzcholek C: (" << xB + podstawaB << "," << yB << ")";
- cout << "\nWierzcholek D: (" << xB << "," << yB << ")";
- cout << "\nPodstawa dolna: " << fabs(podstawaA);
- cout << "\nPodstawa gorna: " << fabs(podstawaB) << endl;
- }
- void symetria(double osX, double osY){
- if (xA > osX || xA <= 0)
- podstawaA = -podstawaA;
- xA = 2 * osX - xA;
- yA = 2 * osY - yA;
- if (xB > osX || xB <= 0)
- podstawaB = -podstawaB;
- xB = 2 * osX - xB;
- yB = 2 * osY - yB;
- }
- void osiowa(double Y){
- double pom1, pom2;
- if ((xA || xB) > Y)
- {
- pom1 = fabs(xA) + fabs(Y);
- Y = Y - pom1;
- xA = Y;
- pom2 = fabs(xB) + fabs(Y);
- Y = Y - pom2;
- xB = Y;
- }
- if ((xA || xB) < Y)
- {
- pom1 = fabs(xA) + fabs(Y);
- Y = Y + pom1;
- xA = Y;
- pom2 = fabs(xB) + fabs(Y);
- Y = Y + pom2;
- xB = Y;
- }
- }
- };
- class trojkat{
- private:
- double pozX;
- double pozY;
- double pod;
- double wys;
- public:
- void polozenie(double pozX, double pozY, double pod, double wys){
- this->pozX = pozX;
- this->pozY = pozY;
- if (pod <= 0)
- this->pod = 1;
- else
- this->pod = pod;
- if (wys <= 0)
- this->wys = 1;
- else
- this->wys = wys;
- }
- void wypisz(){
- cout << "\nWierzcholek A: (" << pozX - (pod / 2) << "," << pozY << ")";
- cout << "\nWierzcholek B: (" << pozX + (pod / 2) << "," << pozY << ")";
- cout << "\nWierzcholek C: (" << pozX << "," << pozY + wys << ")";
- cout << "\nPodstawa: " << pod;
- cout << "\nWysokosc: " << wys << endl;
- }
- void skalowanie(double skal){
- if (skal > 0)
- {
- this->pod *= skal;
- this->wys *= skal;
- }
- }
- void osiowa(double Y){
- double pom;
- if (pozX > Y)
- {
- pom = fabs(pozX) + fabs(Y);
- Y = Y - pom;
- pozX = Y;
- }
- if (pozX < Y)
- {
- pom = fabs(pozX) + fabs(Y);
- Y = Y + pom;
- pozX = Y;
- }
- }
- };
- int main(){
- trapez figura;
- double xA, yA;
- double xB, yB;
- double podstawaA, podstawaB;
- double osX, osY;
- /*cout << "Podaj wsp. x dolnej podstawy: ";
- cin >> xA;
- cout << "Podaj wsp. y dolnej podstawy: ";
- cin >> yA;
- cout << "Podaj dlugosc podstawy: ";
- cin >> podstawaA;
- cout << "Podaj wsp. x gornej podstawy: ";
- cin >> xB;
- cout << "Podaj wsp. y gornej podstawy: ";
- cin >> yB;
- cout << "Podaj dlugosc gornej podstawy: ";
- cin >> podstawaB;*/
- figura.polozenie(2, 1, 2, 3, 2, 1);
- //figura.polozenie(0, 1, 2, -1, 0, 1);
- //figura.polozenie(-1, -1, 2, -1, 1, 2);
- figura.wypisz();
- cout << "\nPodaj wspolrzedne punktu symetrii srodkowej.";
- /*cout << "\nDla x =";
- cin >> osX;
- cout << "Dla y =";
- cin >> osY;*/
- figura.symetria(1, 1);
- cout << "\nNowe polozenie.";
- figura.wypisz();
- figura.symetria(1, 1);
- cout << "\nPowrocenie do poczatkowych wartosci.";
- figura.wypisz();
- /*int index1 = 0, index2 = 0;
- trojkat troj[3];
- trapez figura[3];
- //trojkat
- double x, y, podstawa, wysokosc, skal;
- //trapez
- double xA, yA, xB, yB, podstawaA, podstawaB, osX, osY;
- char c;
- /*do
- {
- cout << "Co chcesz zrobic?" << endl << "a - operacja na trojkacie" << endl << "b - operacja na trapezie" << endl << "w - wyjscie" << endl;
- cin >> c;
- if (c == 'a'){
- cout << "Podaj wsp. x srodka podstawy: ";
- cin >> x;
- cout << "Podaj wsp. y srodka podstawy: ";
- cin >> y;
- cout << "Podaj dlugosc dolnej podstawy: ";
- cin >> podstawa;
- cout << "Podaj wysokosc trojkata: ";
- cin >> wysokosc;
- troj[index1].polozenie(x, y, podstawa, wysokosc);
- troj[index1].wypisz();
- cout << "Podaj wartosc skalowania: ";
- cin >> skal;
- troj[index1].skalowanie(skal);
- cout << "Po operacji: ";
- troj[index1].wypisz();
- }
- if (c == 'b'){
- cout << "Podaj wsp. x srodka dolnej podstawy: ";
- cin >> xA;
- cout << "Podaj wsp. y srodka dolnej podstawy: ";
- cin >> yA;
- cout << "Podaj dlugosc dolnej podstawy: ";
- cin >> podstawaA;
- cout << "Podaj wsp. x srodka gornej podstawy: ";
- cin >> xB;
- cout << "Podaj wsp. y srodka gornej podstawy: ";
- cin >> yB;
- cout << "Podaj dlugosc gornej podstawy: ";
- cin >> podstawaB;
- figura[index2].polozenie(xA, yA, podstawaA, xB, yB, podstawaB);
- cout << "\nPodaj wspolrzedne punktu symetrii srodkowej.";
- cout << "\nDla x =";
- cin >> osX;
- cout << "Dla y =";
- cin >> osY;
- figura[index2].symetria(osX, osY);
- cout << "\nNowe polozenie.";
- figura[index2].wypisz();
- figura[index2].symetria(osX, osY);
- cout << "\nPowrocenie do poczatkowych wartosci.";
- figura[index2].wypisz();
- }
- } while (c != 'w');
- troj[0].polozenie(2, 2, 2, 2);
- troj[0].wypisz();
- troj[0].osiowa(-2);
- troj[0].wypisz();*/
- /*figura[0].polozenie(2,2,2,2,2,2);
- figura[0].wypisz();
- figura[0].osiowa(-2);
- figura[0].wypisz();
- figura[0].osiowa(2);
- figura[0].wypisz();*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement