算法提高 12-1三角形
2017-08-07 19:49
253 查看
算法提高 12-1三角形
时间限制:1.0s 内存限制:256.0MB
问题描述
为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:doule型表示数据。
时间限制:1.0s 内存限制:256.0MB
问题描述
为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:doule型表示数据。
#include<iostream> #include<iomanip> #include<math.h> using namespace std; double a1,a2,a3,b1,b2,b3,A1,A2,B1,B2,C1,C2,x,y,c,d; double Triangle_Perimeter()//三角形周长 { double a,b,c; a= (a1-a2)*(a1-a2)+(b1-b2)*(b1-b2) ; b= (a2-a3)*(a2-a3)+(b2-b3)*(b2-b3) ; c=(a3-a1)*(a3-a1)+(b3-b1)*(b3-b1) ; return sqrt(a)+sqrt(b)+sqrt(c); } double Triangl 4000 e_Area()//三角形面积(已知三角形三点坐标算法) { double a,b,c; a=sqrt( (a1-a2)*(a1-a2)+(b1-b2 )*(b1-b2) ); b=sqrt( (a2-a3)*(a2-a3)+(b2-b3)*(b2-b3) ); c=sqrt( (a3-a1)*(a3-a1)+(b3-b1)*(b3-b1) ); double m; m=(a+b+c)/2; m=m*(m-a)*(m-b)*(m-c); return sqrt(m); } void Excenter()//外心算法-外心到三角形任意一点的距离都相同性质+克拉默法则(行列式求解) { //(x-a1)^2+(y-b1)^2=(x-a2)^2+(y-b2)^2 //化简:2(a2-a1)x+2(b2-b1)y=a2^2+b2^2-a1^2-b1^2 ① //同理也有:2(a3-a1)x+2(b3-b1)y=a3^2+b3^2-a1^2-b1^2 ② /* 两个式子简化:A1*x+B1*y=C1 ①,A2*x+B2*y=C2 ② 转型化为行列式:[A1 B1] 记为D.计算D=A1*B2-B1*A2 [A2 B2] 根据克拉默法则:x=D1/D,D1=[C1 B1] =C1*B2-B1*C2 [用C1,C2替代D的第一列数变为D1] [C2 B2] y=D2/D,D2=[A1 C1]=A1*C2-C1*A2 [A2 C2] */ A1=2*(a2-a1); B1=2*(b2-b1); A2=2*(a3-a1); B2=2*(b3-b1); C1=a2*a2+b2*b2-a1*a1-b1*b1; C2=a3*a3+b3*b3-a1*a1-b1*b1; x=(C1*B2-B1*C2)/(A1*B2-B1*A2); y=(A1*C2-C1*A2)/(A1*B2-B1*A2); } void Focus() { c=(a1+a2+a3)/3.0; d=(b1+b2+b3)/3.0; } int main() { cin>>a1>>b1>>a2>>b2>>a3>>b3; cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2); cout<<Triangle_Perimeter()<<endl; cout<<Triangle_Area()<<endl; Excenter(); cout<<x<<' '<<y<<endl; Focus(); cout<<c<<' '<<d<<endl; return 0; }
相关文章推荐
- 蓝桥杯 算法提高 12-1三角形 (Java解题)
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯 算法提高 12-1三角形 【计算几何_三角形】【全是板子】
- 算法提高 12-1三角形 外心坐标
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
- 算法提高 ADV-230 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-2扑克排序
- 蓝桥杯 ADV-135 算法提高 三角形面积
- 算法提高 ADV-231 12-2扑克排序
- 算法提高 输出正反三角形
- 蓝桥杯ADV-88——算法提高 输出正反三角形
- 算法提高 ADV-88 输出正反三角形
- 算法提高 输出正反三角形