Guest User

Untitled

a guest
Aug 4th, 2020
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #pragma once
  2. class Point {
  3. protected:
  4. public:
  5. virtual double x() = 0;
  6. virtual double y() = 0;
  7. virtual double z() = 0;
  8. virtual void ChangePoint(double x, double y, double z) = 0;
  9. };
  10.  
  11. class Point1d :public Point {
  12. protected:
  13. double PosX;
  14. public:
  15. Point1d(double x) {
  16. PosX = x;
  17. }
  18. virtual double x()override { return PosX; }
  19. virtual void ChangePoint(double x, double y, double z)override {
  20. PosX = x;
  21. }
  22. };
  23.  
  24. class Point2d :public Point1d {
  25. protected:
  26. double PosY;
  27. public:
  28. Point2d(double x, double y) :
  29. Point1d(x) {
  30. PosY = y;
  31. }
  32. virtual double x()override { return PosX; }
  33. virtual double y()override { return PosY; }
  34. virtual void ChangePoint(double x, double y, double z)override {
  35. PosX = x;
  36. PosY = y;
  37. }
  38. };
  39.  
  40. class Point3d :public Point2d {
  41. protected:
  42. double PosZ;
  43. public:
  44. Point3d(double x, double y, double z) :
  45. Point2d(x, y) {
  46. PosZ = z;
  47. }
  48. virtual double x()override { return PosX; }
  49. virtual double y()override { return PosY; }
  50. virtual double z()override { return PosZ; }
  51. virtual void ChangePoint(double x, double y, double z)override {
  52. PosX = x;
  53. PosY = y;
  54. PosZ = z;
  55. }
  56. };
  57.  
  58. #include <math.h>
  59. double CountDistance(Point* object1, Point* object2) {
  60. double x = object1->x() - object2->x();
  61. double y = object1->y() - object2->y();
  62. double z = object1->z() - object2->z();
  63. return sqrt((pow(x, 2) + pow(y, 2))+pow(z,2));
  64. }
Advertisement
Add Comment
Please, Sign In to add comment