Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- class vector {
- protected:
- double x,y,z; //направляющий вектор
- public:
- vector() {x=1;y=1;z=1;} //конструктор по умолчанию
- vector(double x1, double y1, double z1) {x=x1; y=y1; z=z1;}
- void show() {printf("Vector {%lf,%lf,%lf}\n",x,y,z);}
- };
- class sphere {
- protected:
- double x0,y0,z0;
- double r;
- public:
- sphere() {x0=0; y0=0; z0=0; r=1;}
- sphere(double x1, double y1, double z1, double r1) {x0=x1; y0=y1; z0=z1; r=r1;}
- void show() {printf("Sphere: {%lf,%lf,%lf} radius=%lf\n",x0,y0,z0,r);}
- };
- class line: public vector, public sphere {
- private:
- public:
- line(): vector(), sphere() {}
- //Первые 3 координаты - напр вектор. Вторые 3 координаты - проходит через точку.
- line(double Nx, double Ny, double Nz, double x1, double y1, double z1): vector(Nx,Ny,Nz), sphere(x1,y1,z1,0){}
- void show() {vector::show(); printf("point: {%lf,%lf,%lf}",x0,y0,z0); printf("\n\n");}
- friend line operator+(line x, line y){return line(x.x+y.x, x.y+y.y, x.z+y.z, x.x0+y.x0, x.y0+y.y0, x.z0+y.z0);}
- };
- int main() {
- line x, y(2,5,6,1,0,0); //x - {1,1,1,0,0,0}
- x.show();
- y.show();
- line z;
- z=x+y;
- z.show(); //сумма
- }
Advertisement
Add Comment
Please, Sign In to add comment