Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- class Tacka
- {
- double x, y;
- public:
- void Postavi(double x, double y) {Tacka::x = x; Tacka::y = y;}
- void PostaviPolarno(double ro, double theta);
- double DajX() const {return x;}
- double DajY() const {return y;}
- double DajRho()
- {
- return sqrt(x*x + y*y);
- }
- double DajTheta()
- {
- return (atan(y / x));
- }
- void Transliraj(double delta_x, double delta_y);
- void Rotiraj(double alpha);
- void Rotiraj(double alpha, Tacka ¢ar);
- void Ispisi()
- {
- cout << "X:" << x <<endl;
- cout << "Y:" << y << endl;
- cout << endl;
- }
- void IspisiPolarno()
- {
- cout << "Poluprecnik:" << DajRho()<< endl;
- cout << "Ugao:" << DajTheta()<<endl;
- cout << endl;
- }
- friend double Rastojanje(const Tacka &t1, const Tacka &t2);
- };
- void Tacka::PostaviPolarno(double ro, double theta)
- {
- Tacka::x = ro / (sqrt(1 + tan(theta) * tan(theta)));
- Tacka::y = (ro * tan(theta)) / (sqrt(1 + tan(theta) * tan(theta)));
- }
- void Tacka::Transliraj(double delta_x, double delta_y)
- {
- Tacka::x += delta_x;
- Tacka::y += delta_y;
- }
- void Tacka::Rotiraj(double alpha)
- {
- double theta;
- theta -= alpha;
- double ro(Tacka::DajRho());
- Tacka::x = ro / (sqrt(1 + tan(theta) * tan(theta)));
- Tacka::y = (ro * tan(theta)) / (sqrt(1 + tan(theta) * tan(theta)));
- }
- void Tacka::Rotiraj(double alpha, Tacka ¢ar)
- {
- double theta(atan(centar.y / centar.x));
- double ro(sqrt(centar.x * centar.x + centar.y + centar.y));
- theta -= alpha;
- centar.x = ro / (sqrt(1 + tan(theta) * tan(theta)));
- centar.y = (ro * tan(theta)) / (sqrt(1 + tan(theta) * tan(theta)));
- }
- double Rastojanje(const Tacka &t1, const Tacka &t2)
- {
- return (sqrt((t1.x - t2.x) * (t1.x - t2.x) + (t1.y - t2.y) * (t1.y - t2.y)));
- }
- int main()
- {
- Tacka t, n;
- t.Postavi(1, 1);
- t.Ispisi();
- n.PostaviPolarno(2, 45);
- n.IspisiPolarno();
- t.Transliraj(1, 1);
- t.Ispisi();
- n.Rotiraj(30);
- n.IspisiPolarno();
- Tacka centar;
- centar.Postavi(2, 2);
- centar.Rotiraj(30, centar);
- centar.Ispisi();
- double r(Rastojanje(t, n));
- cout << "Rastojanje: " << r;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement