蓝桥杯算法提高 12-1三角形
2017-04-07 16:02
393 查看
纯数学题,外心的公式是在网上百度的,实在是不记得了。
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<queue> using namespace std; struct node { int x,y; }p[4]; double edge1; double edge2; double edge3; double per; void perimeter() { edge1=double(sqrt((p[0].x-p[1].x)*(p[0].x-p[1].x)+(p[0].y-p[1].y)*(p[0].y-p[1].y))); edge2=double(sqrt((p[0].x-p[2].x)*(p[0].x-p[2].x)+(p[0].y-p[2].y)*(p[0].y-p[2].y))); edge3=double(sqrt((p[1].x-p[2].x)*(p[1].x-p[2].x)+(p[1].y-p[2].y)*(p[1].y-p[2].y))); per=edge1+edge2+edge3; printf("%.2lf\n",per); } void area() { double area; double s=0.0; s=double((1.0/2.0)*per); area=double(sqrt(s*(s-edge1)*(s-edge2)*(s-edge3))); printf("%.2lf\n",area); } void barycenter() { double x1=0.0,y1=0.0; for(int i=0;i<3;i++) { x1=x1+p[i].x; y1=y1+p[i].y; } x1=(double)x1/3; y1=(double)y1/3; printf("%.2lf ",x1); printf("%.2lf\n",y1); } void circumcenter() { double x1,y1; x1=(1.0/2.0)*((p[0].x*p[0].x+p[0].y*p[0].y)*(p[1].y-p[2].y)+(p[1].x*p[1].x+p[1].y*p[1].y)*(p[2].y-p[0].y)+(p[2].x*p[2].x+p[2].y*p[2].y)*(p[0].y-p[1].y))/(p[0].x*(p[1].y-p[2].y)+p[1].x*(p[2].y-p[0].y)+p[2].x*(p[0].y-p[1].y)); y1=(1.0/2.0)*((p[0].x*p[0].x+p[0].y*p[0].y)*(p[1].x-p[2].x)+(p[1].x*p[1].x+p[1].y*p[1].y)*(p[2].x-p[0].x)+(p[2].x*p[2].x+p[2].y*p[2].y)*(p[0].x-p[1].x))/(p[0].y*(p[1].x-p[2].x)+p[1].y*(p[2].x-p[0].x)+p[2].y*(p[0].x-p[1].x)); printf("%.2lf ",x1); printf("%.2lf\n",y1); } int main() { for(int i=0;i<3;i++) cin>>p[i].x>>p[i].y; perimeter(); area(); circumcenter(); barycenter(); return 0; }
相关文章推荐
- 蓝桥杯 算法提高 12-1三角形 【计算几何_三角形】【全是板子】
- 蓝桥杯 算法提高 12-1三角形 (Java解题)
- 蓝桥杯ADV-88——算法提高 输出正反三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯 算法提高 12-2扑克排序
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形 外心坐标
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯 ADV-88 算法提高 输出正反三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯 算法提高 12-2扑克排序
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
- 蓝桥杯 ADV-135 算法提高 三角形面积
- 算法提高 ADV-230 12-1三角形
- 算法笔记_082:蓝桥杯练习 12-1三角形(Java)
- 蓝桥杯 ADV-77 算法提高 统计平均成绩