博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求两直线的交点(C++)
阅读量:3897 次
发布时间:2019-05-23

本文共 530 字,大约阅读时间需要 1 分钟。

假设两直线的式子分别为:

\left\{\begin{matrix} L1:A_{1}x + B_{1}y + C_{1} = 0 \\ L2:A_{2}x + B_{2}y + C_{2} = 0 \end{matrix}\right.

求解过程: 

(1) L_{1} * A_{2} - L_{2} * A_{1}

L_{1} * A_{2} \Rightarrow A_{1} A_{2} x + A_{2} B_{1} y + A_{2} C_{1} = 0;

L_{2} * A_{1} \Rightarrow A_{1} A_{2} x + A_{1} B_{2} y + A_{1} C_{2} = 0;

L_{1} * A_{2} - L_{2} * A_{1} \Rightarrow A_{2} B_{1} y - A_{1} B_{2} y + A_{2} C_{1} - A_{1} C_{2} = 0

\Rightarrow y = (A_{1} C_{2} - A_{2} C_{1} ) / (A_{2} B_{1} - A_{1} B_{2}).

(2)L_{1} * B_{2} - L_{2} * B_{1}

L_{1} * B_{2} \Rightarrow A_{1} B_{2} x + B_{1} B_{2} y + B_{2} C_{1} = 0;

L_{2} * B_{1} \Rightarrow A_{2} B_{1} x + B_{1} B_{2} y + B_{1} C_{2} = 0;

L_{1} * B_{2} - L_{2} * B_{1} \Rightarrow A_{1} B_{2} x - A_{2} B_{1} x + B_{2} C_{1} - B_{1} C_{2} = 0

\Rightarrow x = (B_{2} C_{1} - B_{1} C_{2}) / (A_{2} B_{1} - A_{1} B_{2}).

(3) 综上所述,交点的解为:

\left\{\begin{matrix} x = (B_{2} C_{1} - B_{1} C_{2}) / (A_{2}B_{1} - A_{1} B_{2}) \\ y = (A_{1} C_{2} - A_{2} C_{1}) / (A_{2} B_{1} - A_{1} B_{2}) \end{matrix}\right.

(A2 B1 - A1 B2) \neq 0 则有解,否则两直线平行。

补充:如果化成Y=kX+b的形式的话,得解为:

\left\{\begin{matrix}x=(b_{2}-b_{1})/(k_{1}-k_{2}) \\ y = (k_{1}b_{2}-k_{2}b_{1})/(k_{1}-k_{2}) \end{matrix}\right.

例题:

给定三个不共线的点,要求输出一个点使得这个点到三个点的距离相同,输出保留三位小数。

#include
using namespace std;int main(){ double x1,y1,x2,y2,x3,y3; scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); double k1=(y1-y2)/(x1-x2),k2=(y1-y3)/(x1-x3); k1=-1/k1,k2=-1/k2; double x=(x1+x2)/2,y=(y1+y2)/2; double b1=y-k1*x; x=(x1+x3)/2,y=(y1+y3)/2; double b2=y-k2*x; double X=(b2-b1)/(k1-k2); double Y=(k1*b2-k2*b1)/(k1-k2); printf("%.3f %.3f\n",X,Y); return 0;}

 

转载地址:http://kefen.baihongyu.com/

你可能感兴趣的文章
京东金融曹鹏:通过JDD大赛,实现“比你更懂你”的极致价值,让金融更简单,更平等
查看>>
HTML我的家乡杭州网页设计作业源码(div+css)~ HTML+CSS网页设计期末课程大作业 ~ web前端开发技术 ~ web课程设计网页规划与设计 ~HTML期末大作业
查看>>
HTML网页设计期末课程大作业~动漫樱桃小丸子5页表格div+css学生网页设计作业源码
查看>>
HTML学生网页设计作业成品~化妆品官方网站设计与实现(HTML+CSS+JS)共8个页面
查看>>
web课程设计网页规划与设计~在线阅读小说网页共6个页面(HTML+CSS+JavaScript+Bootstrap)
查看>>
HTML期末大作业~棋牌游戏静态网站(6个页面) HTML+CSS+JavaScript
查看>>
XmlValidationModeDetector源码分析
查看>>
解析 xml 为Document
查看>>
中国银行2013年校园招聘机试回忆录(综合部分专业题 考点)
查看>>
广发银行2013校园招聘笔试回忆录
查看>>
Android canvas rotate():平移旋转坐标系至任意原点任意角度-------附:android反三角函数小结...
查看>>
Matlab读取avi视频并播放 你必须要知道的
查看>>
word字体大小与公式编辑器字体对照表
查看>>
visio画图-----如何克服两箭头交叉变形 及 箭头自动重绘?
查看>>
Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
查看>>
“金9银10”2020年JVM高频率面试题整理,技术提升就差一个点!
查看>>
简简单单的分享2020常见的MySQL面试题MySQL与答案整理
查看>>
听说只有大厂的Android工程师才能全答对这20道题?我看你在吹牛哦!
查看>>
武功秘籍之 Redis 面试题全掌握,学完马上找面试官对线!
查看>>
50道!2020年!!MySQL高频数据库面试题解析,你都懂了吗?
查看>>