Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h> /* srand, rand */
- #include <time.h>
- #include <cmath>
- #define PI 3.14
- using namespace std;
- class Prostokat;
- class Punkt{
- private:
- float x;
- float y;
- public:
- Punkt(float X, float Y){
- x = X;
- y = Y;
- }
- Punkt(){}
- float getX(){
- return x;
- }
- float getY(){
- return y;
- }
- void wyswietl(){
- cout << "x: " << x << " y: " << y << endl;
- }
- friend void ustawXY(Punkt& punkt, float a, float b);
- bool czyWspolne(Prostokat prostokat);
- };
- class Prostokat{
- private:
- Punkt lewy_dolny;
- float szer;
- float wys;
- public:
- Prostokat(Punkt LEWY_DOLNY, float SZER, float WYS){
- lewy_dolny = LEWY_DOLNY;
- szer = SZER;
- wys = WYS;
- }
- Punkt getLewyDolny(){
- return lewy_dolny;
- }
- float getSzer(){
- return szer;
- }
- float getWys(){
- return wys;
- }
- };
- bool Punkt::czyWspolne(Prostokat prostokat){
- Punkt p = prostokat.getLewyDolny();
- return x >= p.getX() && x <= p.getX() + prostokat.getSzer() && y >= p.getY() && y <= prostokat.getWys();
- }
- class Kolo{
- private:
- Punkt srodek;
- int r;
- public:
- Kolo(){}
- Kolo(Punkt SRODEK, float R){
- srodek = SRODEK;
- r = R;
- }
- int getR(){
- return r;
- }
- Punkt getSrodek(){
- return srodek;
- }
- bool czyStyczne(Kolo kolo){
- Punkt o = kolo.getSrodek();
- int R = kolo.getR();
- int r1mr2 = R - r;
- if (r1mr2 < 0) r1mr2 *= -1;
- float AB = sqrt(((o.getX() -srodek.getX())*(o.getX() -srodek.getX())) + ((o.getY() -srodek.getY()))*(o.getY() -srodek.getY()));
- return AB == R+r || AB == r1mr2;
- }
- };
- void ustawXY(Punkt& punkt, float a, float b){
- punkt.x = a;
- punkt.y = b;
- }
- void pokazInfo(Prostokat prostokat){
- Punkt p = prostokat.getLewyDolny();
- cout << "A(" << p.getX() << "," << p.getY() << ")" << endl;
- cout << "B(" << p.getX() + prostokat.getSzer() << "," << p.getY() << ")" << endl;
- cout << "C(" << p.getX() + prostokat.getSzer() << "," << p.getY() + prostokat.getWys() << ")" << endl;
- cout << "D(" << p.getX() << "," << p.getY() + prostokat.getWys() << ")" << endl;
- cout << "Pole: " << prostokat.getSzer() * prostokat.getWys() << endl;
- }
- void pokazInfo(Kolo kolo){
- Punkt srodek = kolo.getSrodek();
- cout << "O(" << srodek.getX() << "," << srodek.getY() << ")" << endl;
- cout << "Promien: "<<kolo.getR() << endl;
- cout << "Pole: " << PI*kolo.getR()*kolo.getR() << endl;
- }
- int main(){
- srand (time(NULL));
- Punkt p1 = Punkt();
- Punkt p2 = Punkt();
- Punkt p3 = Punkt();
- ustawXY(p1,5,2);
- ustawXY(p2,-7,-7);
- ustawXY(p3,1.25f,2.5f);
- p1.wyswietl();
- p2.wyswietl();
- p3.wyswietl();
- Prostokat prost1 = Prostokat(Punkt(-8,-6), 13,10);
- cout <<"p1 wspolne z post1: " << p1.czyWspolne(prost1) <<endl;
- cout <<"p2 wspolne z post1: " << p2.czyWspolne(prost1) <<endl;
- cout <<"p3 wspolne z post1: " << p3.czyWspolne(prost1) <<endl;
- Kolo k1 = Kolo(Punkt(0,0), 10);
- pokazInfo(k1);
- pokazInfo(prost1);
- Kolo* listaKol = new Kolo();
- for (int i = 0; i < 1000; i++){
- int x = rand() % 20 - 20;
- int y = rand() % 20 - 20;
- int r = rand() % 20 + 1;
- listaKol[i] = Kolo(Punkt(x, y), r);
- }
- int ileStycznych = 0;
- for (int i = 0; i < 1000; i++){
- if (k1.czyStyczne(listaKol[i]))
- {
- ileStycznych++;
- }
- }
- cout << "Ilosc stycznych: " << ileStycznych << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement