20150_0907_三角形各种心的计算公式_垂心_外心_重心_内心

三角形垂心计算公式, 三角形外心计算公式:

三角形的垂心公式
用坐标表示

垂心:
A(x1,y1)B(x2,y2)C(x3,y3),垂心H(x0,y0) 
用斜率是负倒数关系Kbc=y3-y2/x3-x2 Kah=y1-y0/x1-x0 Kah=-1/Kbc 
得到方程(y3-y2)/(x3-x2)=-(x1-x0)/(y1-y0) 
同理可得方程(y2-y1)/(x2-x1)=-(x3-x0)/(y3-y0) 
解出x0,y0即可,

垂心.外心

 

三角形重心计算公式, 三角形内心计算公式:

重心.内心

以上内容摘自: 数学吧

转载于:https://www.cnblogs.com/BigBigLiang/p/4789086.html

好的,我会尽我所能回答你的问题。 对于这个任务,我们可以定义一个基类 Triangle,并在其内部定义虚函数来完成面积计算、三角形类型判断、重心垂心外心内心计算,以及点和三角形的关系判断。此外,我们还可以定义一个纯虚函数来计算直线和三角形的交点。 具体实现如下: ```c++ class Triangle { public: virtual double getArea() = 0; virtual string getType() = 0; virtual Point getCentroid() = 0; virtual Point getOrthocenter() = 0; virtual Point getCircumcenter() = 0; virtual Point getIncenter() = 0; virtual string getPointRelation(Point p) = 0; virtual vector<Point> getIntersection(Line l) = 0; protected: Point a, b, c; }; class AcuteTriangle : public Triangle { public: AcuteTriangle(Point _a, Point _b, Point _c) { a = _a, b = _b, c = _c; } double getArea() { // 计算面积 } string getType() { // 判断三角形类型 } Point getCentroid() { // 计算重心 } Point getOrthocenter() { // 计算垂心 } Point getCircumcenter() { // 计算外心 } Point getIncenter() { // 计算内心 } string getPointRelation(Point p) { // 判断点和三角形的关系 } vector<Point> getIntersection(Line l) { // 计算直线和三角形的交点 } }; class RightTriangle : public Triangle { public: RightTriangle(Point _a, Point _b, Point _c) { a = _a, b = _b, c = _c; } double getArea() { // 计算面积 } string getType() { // 判断三角形类型 } Point getCentroid() { // 计算重心 } Point getOrthocenter() { // 计算垂心 } Point getCircumcenter() { // 计算外心 } Point getIncenter() { // 计算内心 } string getPointRelation(Point p) { // 判断点和三角形的关系 } vector<Point> getIntersection(Line l) { // 计算直线和三角形的交点 } }; class ObtuseTriangle : public Triangle { public: ObtuseTriangle(Point _a, Point _b, Point _c) { a = _a, b = _b, c = _c; } double getArea() { // 计算面积 } string getType() { // 判断三角形类型 } Point getCentroid() { // 计算重心 } Point getOrthocenter() { // 计算垂心 } Point getCircumcenter() { // 计算外心 } Point getIncenter() { // 计算内心 } string getPointRelation(Point p) { // 判断点和三角形的关系 } vector<Point> getIntersection(Line l) { // 计算直线和三角形的交点 } }; ``` 其中,我们定义了三个派生类 AcuteTriangle、RightTriangle 和 ObtuseTriangle,分别表示锐角三角形、直角三角形和钝角三角形。这些派生类都继承了 Triangle 的虚函数,并且根据其自身特点进行了实现。 在实际使用时,我们可以根据给定的三个点构造出一个 Triangle 对象,并调用其相应的虚函数来完成任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值