我们设已知点为 A ( X 1 , Y 1 ) A(X_1,Y_1) A(X1​,Y1​), B ( X 2 , Y 2 ) B(X_2,Y_2) B(X2​,Y2​)

它们的 X X X坐标差为 X = X 2 − X 1 X=X_2-X_1 X=X2​−X1​ 它们的 Y Y Y坐标差为 Y = Y 2 − Y 1 Y=Y_2-Y_1 Y=Y2​−Y1​

那么我们目前可以得出这样的解析式: y = Y X x + c y=\frac{Y}{X}x+c y=XY​x+c

y y y 轴与直线的交点(如上图点 C C C)的 y y y坐标与 c c c相等

A ( X 1 , Y 1 ) ⇒ C ( 0 , Y 1 − Y X X 1 ) A(X_1,Y_1)\Rarr C(0,Y_1-\frac{Y}{X}X_1) A(X1​,Y1​)⇒C(0,Y1​−XY​X1​)

Y 1 − Y X X 1 Y_1-\frac{Y}{X}X_1 Y1​−XY​X1​

⇒ Y 1 − Y 2 − Y 1 X 2 − X 1 X 1 \Rarr Y_1-\frac{Y_2-Y_1}{X_2-X_1}X_1 ⇒Y1​−X2​−X1​Y2​−Y1​​X1​

⇒ ( X 2 − X 1 ) Y 1 − ( Y 2 − Y 1 ) X 1 X 2 − X 1 \Rarr \frac{(X_2-X_1)Y_1-(Y_2-Y_1)X_1}{X_2-X_1} ⇒X2​−X1​(X2​−X1​)Y1​−(Y2​−Y1​)X1​​

⇒ X 2 ∗ Y 1 − X 1 ∗ Y 1 − Y 2 ∗ X 1 + Y 1 ∗ X 1 X 2 − X 1 \Rarr \frac{X_2*Y_1-X_1*Y_1-Y_2*X_1+Y_1*X_1}{X_2-X_1} ⇒X2​−X1​X2​∗Y1​−X1​∗Y1​−Y2​∗X1​+Y1​∗X1​​

⇒ X 2 ∗ Y 1 − Y 2 ∗ X 1 X 2 − X 1 \Rarr \frac{X_2*Y_1-Y_2*X_1}{X_2-X_1} ⇒X2​−X1​X2​∗Y1​−Y2​∗X1​​

⇒ X 2 ∗ Y 1 − Y 2 ∗ X 1 X \Rarr \frac{X_2*Y_1-Y_2*X_1}{X} ⇒XX2​∗Y1​−Y2​∗X1​​

c = X 2 ∗ Y 1 − Y 2 ∗ X 1 X c=\frac{X_2*Y_1-Y_2*X_1}{X} c=XX2​∗Y1​−Y2​∗X1​​

直线解析式: y = Y X x + X 2 ∗ Y 1 − Y 2 ∗ X 1 X y=\frac{Y}{X}x+\frac{X_2*Y_1-Y_2*X_1}{X} y=XY​x+XX2​∗Y1​−Y2​∗X1​​

直线解析式两种常见的表达方式: y = k x + b y=kx+b y=kx+b 和 a x + b y + c = 0 ax+by+c=0 ax+by+c=0

我们将刚才推出来的解析式用另外一种方式表示

y = Y X x + X 2 ∗ Y 1 − Y 2 ∗ X 1 X y=\frac{Y}{X}x+\frac{X_2*Y_1-Y_2*X_1}{X} y=XY​x+XX2​∗Y1​−Y2​∗X1​​

y − Y X x − X 2 ∗ Y 1 − Y 2 ∗ X 1 X = 0 y-\frac{Y}{X}x-\frac{X_2*Y_1-Y_2*X_1}{X}=0 y−XY​x−XX2​∗Y1​−Y2​∗X1​​=0

X y − Y x − ( X 2 ∗ Y 1 − Y 2 ∗ X 1 ) = 0 Xy-Yx-(X_2*Y_1-Y_2*X_1)=0 Xy−Yx−(X2​∗Y1​−Y2​∗X1​)=0 等式两边同时乘 X X X

( X 2 − X 1 ) y − ( Y 2 − Y 1 ) x − ( X 2 ∗ Y 1 − Y 2 ∗ X 1 ) = 0 (X_2-X_1)y-(Y_2-Y_1)x-(X_2*Y_1-Y_2*X_1)=0 (X2​−X1​)y−(Y2​−Y1​)x−(X2​∗Y1​−Y2​∗X1​)=0

( X 2 − X 1 ) y + ( Y 1 − Y 2 ) x + ( X 1 ∗ Y 2 − Y 1 ∗ X 2 ) = 0 (X_2-X_1)y+(Y_1-Y_2)x+(X_1*Y_2-Y_1*X_2)=0 (X2​−X1​)y+(Y1​−Y2​)x+(X1​∗Y2​−Y1​∗X2​)=0

( Y 1 − Y 2 ) x + ( X 2 − X 1 ) y + ( X 1 ∗ Y 2 − Y 1 ∗ X 2 ) = 0 (Y_1-Y_2)x+(X_2-X_1)y+(X_1*Y_2-Y_1*X_2)=0 (Y1​−Y2​)x+(X2​−X1​)y+(X1​∗Y2​−Y1​∗X2​)=0

a = ( Y 1 − Y 2 ) , b = ( X 2 − X 1 ) , c = ( X 1 ∗ Y 2 − Y 1 ∗ X 2 ) a=(Y_1-Y_2),b=(X_2-X_1) ,c=(X_1*Y_2-Y_1*X_2) a=(Y1​−Y2​),b=(X2​−X1​),c=(X1​∗Y2​−Y1​∗X2​)

我们可以用几何面积法验证其正确性

同样的我们设已知点为 A ( X 1 , Y 1 ) A(X_1,Y_1) A(X1​,Y1​), B ( X 2 , Y 2 ) B(X_2,Y_2) B(X2​,Y2​)

同时我们设在这条直线上的一点 C ( X 0 , Y 0 ) C(X_0,Y_0) C(X0​,Y0​)

那么把等式表示为 ( Y 1 − Y 2 ) X 0 + ( X 2 − X 1 ) Y 0 + ( X 1 ∗ Y 2 − Y 1 ∗ X 2 ) = 0 (Y_1-Y_2)X_0+(X_2-X_1)Y_0+(X_1*Y_2-Y_1*X_2)=0 (Y1​−Y2​)X0​+(X2​−X1​)Y0​+(X1​∗Y2​−Y1​∗X2​)=0

Y 1 ∗ X 0 − Y 2 ∗ X 0 + X 2 ∗ Y 0 − X 1 ∗ Y 0 + X 1 ∗ Y 2 − Y 1 ∗ X 2 = 0 Y_1*X_0-Y_2*X_0+X_2*Y_0-X_1*Y_0+X_1*Y_2-Y_1*X_2=0 Y1​∗X0​−Y2​∗X0​+X2​∗Y0​−X1​∗Y0​+X1​∗Y2​−Y1​∗X2​=0

X 1 ∗ Y 2 − Y 1 ∗ X 2 X_1*Y_2-Y_1*X_2 X1​∗Y2​−Y1​∗X2​ 面积为下图

Y 1 ∗ X 0 − X 1 ∗ Y 0 Y_1*X_0-X_1*Y_0 Y1​∗X0​−X1​∗Y0​ 面积为下图

X 2 ∗ Y 0 − Y 2 ∗ X 0 X_2*Y_0-Y_2*X_0 X2​∗Y0​−Y2​∗X0​ 面积为下图

通过面积的加减最后得到的如下图

即 ( X 2 − X 0 ) ( Y 0 − Y 1 ) − ( Y 2 − Y 0 ) ( X 0 − X 1 ) (X_2-X_0)(Y_0-Y_1)-(Y_2-Y_0)(X_0-X_1) (X2​−X0​)(Y0​−Y1​)−(Y2​−Y0​)(X0​−X1​)

我们设 K = ( Y 2 − Y 1 ) / ( X 2 − X 1 ) K=(Y_2-Y_1)/(X_2-X_1) K=(Y2​−Y1​)/(X2​−X1​)

( X 2 − X 0 ) ( Y 0 − Y 1 ) − ( Y 2 − Y 0 ) ( X 0 − X 1 ) = K ( X 2 − X 0 ) ( X 0 − X 1 ) − K ( X 2 − X 0 ) ( X 0 − X 1 ) = 0 (X_2-X_0)(Y_0-Y_1)-(Y_2-Y_0)(X_0-X_1)=K(X_2-X_0)(X_0-X_1)-K(X_2-X_0)(X_0-X_1)=0 (X2​−X0​)(Y0​−Y1​)−(Y2​−Y0​)(X0​−X1​)=K(X2​−X0​)(X0​−X1​)−K(X2​−X0​)(X0​−X1​)=0

得证

c++代码计算

void ASL(Line t){ //Analytic straight linedouble a=t.a.Y-t.b.Y,b=t.b.X-t.a.X,c=t.a.X*t1.b.Y-t.b.X*t.a.Y;return;
}

应用

  • 知一直线和一个在直线上点的 x x x坐标求该点坐标的 y y y坐标

a x + b y + c = 0 ax+by+c=0 ax+by+c=0

b y = − a x − c by=-ax-c by=−ax−c

y = − a x − c b y=\frac{-ax-c}{b} y=b−ax−c​

c++代码计算

double FYC(Line t,double x){ //Find the Y coordinatedouble a=t.a.Y-t.b.Y,b=t.b.X-t.a.X,c=t.a.X*t1.b.Y-t.b.X*t.a.Y;return (-a*x-c)/b;
}
  • 知一直线和一个在直线上点的 y y y坐标求该点坐标的 x x x坐标

a x + b y + c = 0 ax+by+c=0 ax+by+c=0

a x = − b y − c ax=-by-c ax=−by−c

x = − b y − c a x=\frac{-by-c}{a} x=a−by−c​

c++代码计算

double FXC(Line t,double x){ //Find the X coordinatedouble a=t.a.Y-t.b.Y,b=t.b.X-t.a.X,c=t.a.X*t1.b.Y-t.b.X*t.a.Y;return (-b*y-c)/a;
}

[计算几何]知两点坐标求过两点的直线解析式相关推荐

  1. 已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  2. python坐标表示_已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  3. 基于matlab已知地球两点坐标求取距离和方位角函数distance

    一.语法 1.语法1 [arclen,az] = distance(lat1,lon1,lat2,lon2): R=6371.393; % 地球半径,单位:km 地点1(维度lat1,经度lon1), ...

  4. 已知两点坐标求直线的一般表达式

    假设有两个点x1,y1,x2,y2 一般式Ax+By+C=0 A=y2-y1 B=x1-y2 g=__gcd(A,B); A/=g,B/=g 那么C就 C=-(Ax+By) 随便带一个点进去就好了 转 ...

  5. python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...

    展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...

  6. 已知向量坐标求三角形面积

    引出一个问题 如何判断一个点是否在三角形中?

  7. 用“平面两点距离”求三角形面积及多边形面积

    不小于 3 边的多边形,都可以任一顶点发出的边切分为 n - 2 个三角形. [学习的细节是欢悦的历程] Python 官网:https://www.python.org/ Free:大咖免费&quo ...

  8. 转 已知两点坐标和半径求圆心坐标程序C++

    数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <cma ...

  9. arcgis已知两点投影坐标求距离

    问题: 已知中心点坐标,求个点与中心点坐标的距离 解决方法如下: 新建字段 在新建字段上右键字段计算器 利用字段计算器进行两点间距离计算 不懂问题请进群交流询问相关知识点

最新文章

  1. Android studio 真机联调闪退
  2. mSystems: 中科院动物所王德华组揭示低温下野生动物肠道菌群提高存活率的机制...
  3. 道理都懂,为什么还是做不好需求分析?
  4. numpy(8)-转换维度
  5. MyBatis中使用#{}和${}的区别
  6. Cisco 3550-EMI 交 换 机 配 置 教 程
  7. spring mvc学习(12)---使用idea创建第一个maven项目
  8. 虚拟机上的Linux学习
  9. 无限轮播图片的实现原理
  10. 云计算(1)---基础知识
  11. 谷歌再获语音识别新进展:利用序列转导来实现多人语音识别和说话人分类
  12. 【Java 泛型】泛型(泛型类型、原始类型、泛型方法)、通配符(上界、下界、无限制、继承)
  13. 安装caffe-yolov3时报错:ImportError: No module named torch(环境变量设置)
  14. mysql中什么来维护表之间_转mysql维护索引和表
  15. Ubuntu18.04下NVIDIA CUDA安装指南和DeepLearning4J GPU配置
  16. python 中关于系统路径的事项;
  17. Tomcat startup.bat 后台运行,不再弹出 Dos 黑框
  18. 126 MySQL存储引擎概述
  19. 电科 | 传感器及其应用技术
  20. 【NOIP2012-Day2-T2-换教室】

热门文章

  1. 机械师电脑快捷键 风扇 灯
  2. Mac如何输入换行符
  3. 修改HDFS上的文件权限
  4. 天茹美妆祛斑怎么样?
  5. word 2003 格式刷快捷键
  6. 湖北2021年模拟高考成绩查询,湖北高考查分、填志愿时间公布!2021高考预测分数线出炉!...
  7. Python+Appium实现删除微信“僵尸好友”
  8. 做头像软件测试,用自己照片当微信头像的人,都是什么样的人?
  9. ASP.NET HttpHandle数字水印
  10. linux常中的cat命令,cat命令-linux常用命令cat用法详解