POJ 1673 三角形垂心
来源:互联网 发布:vmware mac os补丁包 编辑:程序博客网 时间:2024/04/29 03:13
题意:给出步骤连接终点与三角形的顶点,求交点o。
如图, 以△ABC的边AB、AC、BC向外作正方形ABHI、ACED以及BCFG。连接DI、HG、EF并取它们的中点J、L、K。连接JA、LB、KC并延长。证明:JA、LB、KC的延长线交于一点M,且M点为△ABC的垂心。
证明:如图所示,
延长AJ与N点,使得NJ=AJ,连接IN。延长JA、LB、KC分别交BC、AC、AB于O、P、Q点。
易证△DJA≌△IJN
则∠NID=∠IDA
∴∠NIA=∠NID+∠DIA=∠IDA+∠DIA=180°-∠IAD=∠BAC
∵IA=AB,DA=AC
∴△NIA≌△CAB(SAS)
∴∠NAI=∠CBA
∵∠NAI+∠BAO=90°
∴∠CBA+∠BAO=90°
∴∠AOB=90°
即AO⊥BC,即JA⊥BC
同理可得LB⊥AC,KC⊥AB
∴JA、LB、KC的延长线交于一点M,这一点M为△ABC的垂心
证毕!
知道了垂心就求垂心。看到了DIS里说要+1e-8不加就错了。
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;struct point{ double x,y;};point getcx(point a,point b,point c){ point ans; double a1=atan2(b.y-a.y,b.x-a.x)+acos(-1.0)/2,a2=atan2(c.y-b.y,c.x-b.x)+acos(-1.0)/2; double r=(sin(a2)*(c.x-a.x)+cos(a2)*(a.y-c.y))/(sin(a1)*cos(a2)-sin(a2)*cos(a1)); ans.x=c.x+r*cos(a1),ans.y=c.y+r*sin(a1); return ans;}int main(){ point a,b,c,ans;int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y); ans=getcx(a,b,c); printf("%.4f %.4f\n",ans.x+1e-8,ans.y+1e-8); } return 0;}
- POJ 1673 三角形垂心
- POJ 1673 三角形垂心
- poj 1673 EXOCENTER OF A TRIANGLE(求三角形垂心)
- POJ 1673 EXOCENTER OF A TRIANGLE(证明+求三角形垂心)
- POJ 1673 EXOCENTER OF A TRIANGLE(求三角形的垂心)
- poj 1673 EXOCENTER OF A TRIANGLE(求三角形垂心)
- 三角形垂心
- poj 1163 三角形和
- 数字三角形(POJ)
- POJ 1329 三角形外接圆
- poj 2760:数字三角形
- POJ 1163 数字三角形
- 【POJ-1163】数字三角形
- 三角形外心与垂心
- 求三角形垂心重心
- PKU 1673 EXOCENTER OF A TRIANGLE 三角形的垂心
- poj 1471 dfs 搜索三角形
- POJ 1941 三角形分形
- oracle sql 记录存在则更新,不存在则插入
- form表单关闭历史记录
- .net简单录音和播放音频文件,不用DirectX ,对于C/S 、B/S都适用
- Activity事件顺序
- C#关闭Word进程方法
- POJ 1673 三角形垂心
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- Effective C++ 第二版 3)new/delete和malloc/free 4)C++注释
- 2013 - ECJTU 暑期训练赛第四场-problem-I
- Linux命令的返回值
- 学习思考(7):以合作开发的模式开发,就像你不是一个人在开发一样
- Linux Shell-------if -eq,if -ne,if -gt
- VB.NET 控制滑鼠的移动
- 字母小游戏