三角形垂心

三角形垂心给定一个三角形求垂心跟前一篇求圆心的一样 因为发现了我之前的做法都比较二 于是乎想把整个模板都改改 我之前的模板的做法仍就很麻烦我先一点和该点的对边求点斜式 然后两条直线求交点 想法简单 但是代码长度比较长 POJ1673point pointp0 pointp1 pointp2 doublea1 b1 a2 b2 c1 c2 a1

2011060614162487.png

 

给定一个三角形求垂心

跟前一篇求圆心的一样。
因为发现了我之前的做法都比较二,于是乎想把整个模板都改改。
我之前的模板的做法仍就很麻烦
我先一点和该点的对边求点斜式。然后两条直线求交点。
想法简单,但是代码长度比较长,








POJ1673

point orthocenter(point p0,point p1,point p2){

 double a1,b1,a2,b2,c1,c2;
 a1 = p2.x-p1.x; b1=p2.y-p1.y;c1 = 0;
 a2 = p2.x-p0.x; b2=p2.y-p0.y;c2 = (p1.x-p0.x)*a2+(p1.y-p0.y)*b2;
 double d = a1 * b2 – a2 * b1;
  ret.x = p0.x + (c1 * b2 – c2 * b1) / d;
  ret.y = p0.y + (a1 * c2  – a2 * c1) / d;
 return ret;
}
读入三个点p0,p1,p2返回垂心
根据垂直向量点成为0
(O.x-p0.x)*(p2.x-p1.x)+(O.y-p0.y)*(p2.y-p1.y) = 0;  (1)
(O.x-p1.x)*(p2.x-p0.x)+(O.y-p1.y)*(p2.y-p0.y) = 0;  (2)
 
令O.x = x+p0.x;O.y=y+p0.y带入(1)(2)得到
x*(p2.x-p1.x)+y*(p2.y-p1.y) = 0;
x*(p2.x-p0.x)+y*(p2.y-p0.y) = (p2.x-p0.x)*(p1.x-p0.x)+(p2.y-p0.y)*(p1.y-p0.y);
解得(x,y)
O = (x,y)+p0;




































 

#include 
    
      #include 
     
       using namespace std; struct point{ double x,y; } p0,p1,p2,ret; int Test; point orthocenter(point p0,point p1,point p2){ double a1,b1,a2,b2,c1,c2; a1 = p2.x-p1.x; b1=p2.y-p1.y;c1 = 0; a2 = p2.x-p0.x; b2=p2.y-p0.y;c2 = (p1.x-p0.x)*a2+(p1.y-p0.y)*b2; double d = a1 * b2 - a2 * b1; ret.x = p0.x + (c1 * b2 - c2 * b1) / d; ret.y = p0.y + (a1 * c2 - a2 * c1) / d; return ret; } int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); cin >> Test; for (int ii = 1;ii<=Test;++ii){ cin>>p0.x>>p0.y>>p1.x>>p1.y>>p2.x>>p2.y; ret = orthocenter(p0,p1,p2); printf("%.4lf %.4lf\n",ret.x,ret.y); } return 0; } 
      
    

转载于:https://www.cnblogs.com/LitIce/archive/2011/06/06/2073627.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198740.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:35
下一篇 2026年3月26日 下午2:35


相关推荐

  • shmget函数

    shmget函数shmgetintshm key tkey size tsize intflag key 标识符的规则 size 共享存储段的字节数 flag 读写的权限返回值 成功返回共享存储的 id 失败返回 1key tkey key 标识共享内存的键值 0 IPC PRIVATE 当 key 的取值为 IPC PRIVATE 则函数 shmget 将创建一块

    2026年3月17日
    1
  • 入门指南_索尼相机操作入门指南

    入门指南_索尼相机操作入门指南很多摄影初学者 在一开始 满怀希望地购买相机之后 结果连说明书都不看 就直接上手使用了 但相机上的好多参数他也不会调节 结果使用了几个月之后 发现自己用相机拍摄出来的照片还是一塌糊涂 甚至有人觉得还没有手机拍摄得好看 然后将相机丢至一边 这样一来 你既花了钱 又没办法享受摄影的快乐 岂不是得不偿失 几款主流索尼相机展示小编在前面也提到过几种索尼相机的使用说明 但相机是一个总是推陈出新的产

    2026年3月26日
    4
  • Mysql decimal(m,d)的说明

    Mysql decimal(m,d)的说明看了一些博客,觉得很多都是复制的,不如自己亲测一篇:createtabledecimal_test(idintauto_incrementPRIMARYkey,scoredecimal(5,2)–取值范围是-999.99到999.99);–整数的位数必须小于等于m-d,不然报错。小数的位数可以大于d位。多…

    2022年7月17日
    25
  • Errors reported by CheckUpDown

    Errors reported by CheckUpDown

    2021年5月9日
    154
  • 如何在Pycharm中导入库

    如何在Pycharm中导入库一 打开 Pycharm 找到 File 打开 二 找到 Settings 打开三 打开之后会有个 ProjectInter 选项 然后点击打开 右边有个小加号 就是添加库的 四 上面输入你想添加的库名 点击左下角 InstallPacka 即可安装 等待安装完会有提示

    2026年3月27日
    2
  • Latex学习 day1「建议收藏」

    Latex学习 day1「建议收藏」这周学习超卖力,到今天周五累到了,不想搞遗传算法也不想搞神经网络了,今天来玩玩latex,系统地看看刘海洋老师的书书,之前也鼓捣过,不系统,查漏补缺吧。玩一玩大概就可以通过愧疚学习法找到继续搞正经活儿的动力了Ctrl+鼠标左键正反向查找按tab自动补全\docTab补全\documentclass{}\beqtab补全公式环境\begin{equation}…

    2022年6月2日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号