Triangle::Triangle(Point a,Point b,Point c):la(a,b),lb(a,c),lc(b,c){ } double Triangle::getGirth(){ return la.GetDistance()+lb.GetDistance()+lc.GetDistance(); } double Triangle::getArea(){ double h; h = (getGirth()/2); return sqrt(h*(h-la.GetDistance())*(h-lb.GetDistance())*(h-lc.GetDistance())); }
时间: 2024-04-27 20:22:42 浏览: 110
这里是 Triangle 类的函数实现部分,包括构造函数 Triangle(Point a, Point b, Point c)、getGirth() 和 getArea() 函数。
构造函数 Triangle(Point a, Point b, Point c) 的实现中,使用 a、b、c 三个点初始化了三条边 la、lb、lc。
getGirth() 函数的实现中,使用 la、lb、lc 三条边的 GetDistance() 函数获取它们的长度,然后将它们相加得到三角形周长。
getArea() 函数的实现中,首先调用 getGirth() 函数获取三角形周长,然后使用海伦公式计算三角形面积。其中 h 是周长的一半,而 la、lb、lc 三条边的长度则分别通过 la.GetDistance()、lb.GetDistance() 和 lc.GetDistance() 获取。
相关问题
class Triangle { public: Triangle(Point a,Point b,Point c); Triangle(); double getGirth(); //三角形周长 double getArea(); //三角形面积 int IsATriangle(); //判断三个点是否能构成三角形 private: Point pa,pb,pc; Line la,lb,lc; };
这是一个 C++ 的 Triangle 类定义,由三个 Point 对象组成,表示一个三角形。类中定义了两个构造函数,一个默认构造函数 Triangle(),一个构造函数 Triangle(Point a, Point b, Point c),和三个公有函数 getGirth()、getArea() 和 IsATriangle()。
构造函数 Triangle(Point a, Point b, Point c) 的实现中,将传入的三个 Point 对象分别赋值给成员变量 pa、pb、pc,并且使用这三个点初始化了三条边 la、lb、lc。
getGirth() 函数的实现中,分别获取三条边的长度,然后将其相加得到三角形周长。
getArea() 函数的实现中,使用海伦公式计算三角形面积。海伦公式是根据三角形的三边长计算面积的公式。
IsATriangle() 函数的实现中,判断三个点是否能构成三角形。如果三条边都存在且第 i 条边的长度小于第 i+1 和 i+2 条边长度之和,则可以构成三角形。
我来为你提供一个示例,希望对你有所帮助。 这是一个计算三角形的面积的程序。 首先,我们需要定义一个基础类Triangle,其中包含三角形的三条边长作为数据成员。 复制 #include <iostream> #include <cmath> class Triangle { public: Triangle(double a, double b, double c) : a_(a), b_(b), c_(c) {} // 构造函数 ~Triangle() {} // 析构函数 Triangle(const Triangle& other) : a_(other.a_), b_(other.b_), c_(other.c_) {} // 复制构造函数 static double getArea(double a, double b, double c); // 静态成员函数,用于计算三角形的面积 private: double a_; double b_; double c_; }; double Triangle::getArea(double a, double b, double c) { double s = (a + b + c) / 2; // 计算海伦公式中的 s 变量 return sqrt(s * (s - a) * (s - b) * (s - c)); // 返回面积 } 然后,我们可以创建一个派生类RightTriangle,表示直角三角形。这个类继承了Triangle类的数据成员,并添加了一个静态函数用于判断是否为直角三角形。 复制 class RightTriangle : public Triangle { public: RightTriangle(double a, double b, double c) : Triangle(a, b, c) {} // 构造函数 ~RightTriangle() {} // 析构函数 static bool isRightTriangle(double a, double b, double c); // 静态函数,用于判断是否为直角三角形 }; bool RightTriangle::isRightTriangle(double a, double b, double c) { return (
感谢您的示例。基于你的描述,这是如何计算三角形面积的程序:
首先,定义一个名为Triangle的基础类,包含三角形的三条边长作为数据成员。然后,可以使用海伦公式来计算三角形面积:
s = sqrt(p*(p-a)*(p-b)*(p-c))
其中,s是三角形的面积,a、b、c是三角形的三条边长,p是三角形周长的一半,即p = (a+b+c)/2。
最后,可以在Triangle类中定义一个函数来计算并返回三角形的面积。
希望我的回答对你有帮助。
阅读全文