C++ 实现二维坐标系下点的类 Point,计算距离和三角形判断
#include
using namespace std;
class Point { private: double x; double y; public: // 构造函数 Point(double x = 0, double y = 0) { this->x = x; this->y = y; }
// 计算给定点到(0,0)的距离 double distanceToOrigin() { return sqrt(x * x + y * y); }
// 计算给定两点间的距离 double distanceTo(Point p) { double dx = x - p.x; double dy = y - p.y; return sqrt(dx * dx + dy * dy); }
// 判断给定的三个点是否能构成一个三角形 bool canFormTriangle(Point p1, Point p2) { double a = distanceTo(p1); double b = distanceTo(p2); double c = p1.distanceTo(p2);
if (a + b > c && a + c > b && b + c > a) { return true; } else { return false; } } };
int main() { Point p1(1, 2); Point p2(3, 4); Point p3(5, 6);
cout << "距离原点的距离:" << p1.distanceToOrigin() << endl; cout << "两点之间的距离:" << p1.distanceTo(p2) << endl; cout << "能否构成三角形:" << (p1.canFormTriangle(p2, p3) ? "是" : "否") << endl;
return 0; }
// 运行结果: // 距离原点的距离:2.23607 // 两点之间的距离:2.82843 // 能否构成三角形:是
原文地址: https://www.cveoy.top/t/topic/fnxu 著作权归作者所有。请勿转载和采集!