(伪)点到直线的距离 C++

三维空间内点到直线的距离计算公式 其思路是巧妙使用直线上两个点进行计算。 方法一: 如下图所示,在直线L上取两点与,则得到向量,与构成向量,根据下式计算得到两向量夹角。那么到直线L的距离为 方法二: 使用向量叉乘得到,如下图所示: 具体参考matlab中推导:https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html 参考博客:https://blog.youkuaiyun.com/lcfactorization/article/details/5328563 阅读详情

目录

背景

公式是什么鬼?!

推导

编译

以下正文>>>



背景

最近做到一道题。作为一个初中生,对于“点到直线的距离”以及其公式:

formula

第一眼,压根搞不懂是什么意思-。-(很认真的!)

去搜了一下一些课件。现在给一些不懂的同学以我的理解讲一下。

 

公式是什么鬼?!

上方的  是直线的表达(解析)式;

在浙教版八年级上册讲的一次函数图象里,所熟悉的直线表达式是:

这里将式子变了一下形,根本上是一样的。A,B,C是三个常数(为什么用大写字母呢?)。

 

推导

题目的输入是三组坐标:

其中,A,B在该直线上,求P到AB的距离。

就酱紫。

当然,要编程按一般的解方程做肯定是很麻烦的。

抱着试试看(是否可以把A,B,C约掉?)的心态,我在草稿上化简了一下。

果然,最后(然而并不是最简但是挺好看的)的结果并没有出现A,B,C。

编译

C++程序如下(结果保留了3位小数)。

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
		double x1,x2,x0,y1,y2,y0,res,a,b,c;//以双精度保存变量
		cin>>x1>>y1>>x2>>y2>>x0>>y0;//输入三组数据
		a=(x0-x1)*(y2-y1);//分子的左半部分
		b=(y0-y1)*(x1-x2);//分子的右半部分
		c=a+b;//二者相加
		c*=c;//平方(pow(c,2)貌似在这里更加麻烦)
		a=pow(y2-y1,2);//分母左半部分
		b=pow(x1-x2,2);//分母右半部分
		c/=(a+b);//分子分母相除
		res=sqrt(c);//开方
		printf("%.3lf",res);//输出
}

提交。

10 AC。通过。

欢迎批评指正!

(完)

计算点到直线的距离(C/C++实现) 计算点到直线的距离可以通过求解点到直线的垂直距离来实现。具体而言,我们可以使用点到直线的最小距离公式来计算距离。在计算机图形学和几何学中,经常需要计算点到直线的距离。在本篇文章中,我们将介绍如何使用C/C++编程语言来计算点到直线的距离。通过使用上述的算法和示例代码,我们可以在C/C++中计算点到直线的距离。这个方法在计算机图形学和几何学等领域有广泛的应用,可以帮助我们解决许多相关的问题。在上面的示例代码中,我们首先定义了直线的参数A、B和C,以及待测点的坐标x0和y0。函数来计算点到直线的距离。 阅读详情

相关推荐

点到任意直线的距离算法

可以对计算任意点到任意直线的距离,前提是在使用之前需要输入直线y=ax+b,a和b的参数

c++ 求点到直线的距离

//计算点到直线的距离 double point2LineDistance(cv::Point2d point, cv::Vec4f lineParam) { cv::Point2d qIpoint; cv::Vec4f lineVert; lineVert[0] = lineParam[1]; lineVert[1] = -lineParam[0]; lineVert[2] = point.x; lineVert[3] = point.y; get2

weixin_44901043的博客 6073

C++实现三维空间中点到点、点到直线、点到平面的距离计算

C++实现三维空间中点到点、点到直线、点到平面的距离计算。

C++ 如何求点到直线的距离?(两点式)

(其中:fabs是求绝对值,sqrt是开2次根号,pow是求一个数的n次方)

Dontla的博客 6623

计算点到线段的最短距离

这个计算点到线段最短距离算法是先计算线段上距离点最近的点,然后求出 2 点距离。在计算用户到当前位置到某条公路的最短距离等实际情况中,可以先用这个算法,然后根据结果坐标使用 CLLocation 类的函数计算实际距离 VC6工程

求点到线段的距离

求点到线段的距离

计算空间中一点到直线距离(附源码)

向量法计算空间中点到直线的距离

爱哭鬼 1891

C++语言实现一些基本算法(两点距离、点是否在直线上、点与直线的关系、两直线的夹角、两直线的交点、两个举行的重合面积等等)

C++语言实现一些基本算法(两点距离、点是否在直线上、点与直线的关系、两直线的夹角、两直线的交点、两个举行的重合面积等等)

vc++ 求点到直线的最短距离及垂足

一、根据两点求直线方程 已知直线上两点为:(x1,x2),(y1,y2); 设方程为:Ax+By+C=0; 1. 求斜率:k=(y2-y1)/(x2-x1); 2. 直线方程为: y-y1=k(x-x1); 换算得:kx-y+y1-kx1=0,即: A=k B=-1 C=y1-kx1=y1-(y2-y1)/(x2-x1)*x1 二、求距离和垂足公式 1. 点(x0,y0)到直线的距离公式为: d=abs(Ax0+By0+C)/sqrt(A*A+B*B); 2. 设垂足为p,则:

翻肚鱼儿的博客 2389

跨越移植陷阱:ESP-IDF下LVGL与ILI9341的组件化集成与常见避坑指南

本文详细解析了在ESP-IDF环境下将LVGL图形库与ILI9341显示屏驱动进行组件化集成的完整流程。重点介绍了移植过程中的关键配置策略、内存管理优化技巧以及常见问题解决方案,帮助开发者有效规避内存溢出、显示异常等典型陷阱,实现高效稳定的嵌入式GUI开发。

yhn456789的博客 628

AWVS安装与使用教程

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。

qq_59607911的博客 4099

c++ opencv-点到直线的距离

-点到直线的距离: cv::Point center(1,2); cv::Point point_tl(2,2); cv::Point point_tr(3,2); float dis1 = getDist_P2L(center, point_tl, point_tr); /** @brief 判断一个点是否在一个矩形里 @param PointpointP 点;. @param cv...

zisuina_2的博客 4315

智能座舱芯片大乱斗:高通8155 vs 联发科MT8676 vs 华为麒麟990A,谁才是性价比之王?

本文深入对比了高通SA8155P、联发科MT8676与华为麒麟990A三款主流智能座舱芯片的性能、生态与成本。文章从CPU/GPU/NPU算力、开发生态、成本模型及典型应用场景出发,分析了各自在智能座舱领域的优势与适用性,为开发者与车企选型提供了实战参考,并探讨了智能座舱芯片未来的技术趋势。

yhn456789的博客 807

计算几何——点到直线的距离、投影点

汇总篇:计算几何汇总 点到直线的距离 cos(x)=BA*BC/(|BA|*|BC|) 求AD有很多种方法,可以用勾股定理 这里用的三角函数 x=acos(cos(x)) |AD|=|BA|*sin(x) 如果x是钝角,|AD|=|BA|*sin(pi-x)=|BA|*sin(x) 如果是直角,sin(x) = 1,|AD|=|BA| 点A到直线BC的投影点 方法一 ...

Meloor的博客 2万+

uniapp - 使用 <video> 播放视频黑屏,浏览器控制台报错: DOMException: The element has on supported sources.(详细完美解决方案)

uniapp video 视频播放黑屏,uniapp 报错DOMException: The element has on supported sources.,uniapp如何解决DOMException: The element has on supported sources.,uniapp使用video标签无法播放视频出现黑屏问题处理,uniapp解决video视频黑屏显示0秒,并且浏览器报错DOMException: The element has on supported sources.,un

✅ 精选推荐文章 7056

【VTK】VTK中的光标样式

本文分享VTK中的光标设置相关内容技术,希望对各位小伙伴有所帮助!

qq_40041064的博客 1931

C++——计算点到直线的距离保留两位小数

直线方程:Ax+By+C=0 编写程序,输入A,B,C,和点(x,y),计算该点到直线的距离。 点到直线的距离公式: d=|Ax+By+C|/sqrt(A*A+B*B) 其中|z|表示绝对值,程序中使用条件表达式,如:z<0 ? z=-z:z=z; 输入:两行,第1行是直线方程的系数A,B,C,用空格隔开。 第2行是平面点的坐标x,y,用空格隔开。 输出:一个实数,表示点到直线的距离,最...

qq_41017444的博客 4206

Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)

通过下面十个步骤,我们就可以在ubuntu上使用vcs、verdi、dve等软件! 一、安装ubuntu系统,这个不在这里讲了,重点叫安装VCS、Verdi等软件 下面的过程一部分同其他网上流程一致,对其中部分进行修改。如果按照其他网上教程是不会成功的,本人亲测,下面是我试验网上不同文章的流程遇到的错误摸索后总结的流程,按照步骤保证可以成功运行,包括破解流程,使用时间不限制在2020年,可以自定义2030等等。 二、安装文件结构 –synopsys_installer #此程序用于安装下面三个程序。所以你想

QQ_778132974的博客 6365

[C++] 点到直线的最大、最小距离

1)求出点到直线的距离,并存入容器dis中,已知直线的系数a,b,c已知: vector<double>dis; for(int i =0;i<size;i++) { double d1 = a * points.at(i).x+b * points.at(i).y+c; double d2 = sqrt(a*a+b*b); double d = sqrt(d1/d2*d...

Loewen丶的小窝 3159

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 314

小目标检测难题终结:YOLOv11 + 注意力机制,精度直接拉满

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_64661770的博客 199

三维空间中点到点、点到直线、点到平面的距离计算

在空间解释几何中,点到点、点到直线、点到平面的距离是基本的计算。计算公式也有多种推导方法(详细参见任何线性代数教材或维基百科)。本文采用向量的內积、外积来计算这三个距离。

DeeperBlue的博客 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【C++ | PTA】计算点到直线的距离一一友元函数的应用

计算点到直线的距离。首先设计一个点类Point,它有2 个私有数据成员x和y,表示点的坐标。另一个类为直线类Line,它有3 个私有数据成员a,b和c,表示直线方程ax+by+c= 0。这两个类中都说明了一个友元函数dist,用于计算一个点到直线的距离。点(x.y)到直线ax+by+c=0的距离d的计算公式如下:该题考察C++ 类的基本定义和使用,包括类的构造函数、公有成员函数和私有成员变量等。友元函数可以访问类的私有成员变量,但并不是类的成员函数。

等风来 6509

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

三维空间点到直线的距离C++实现

参考: http://blog.youkuaiyun.com/zhangsmile123456/article/details/48711719 http://blog.youkuaiyun.com/lcfactorization/article/details/53285631

满城风絮 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

c++ 3d求点到直线的距离_【“数”你好看】点到直线与面的距离公式

点到直线的距离公式是高中常见的解析几何公式,形式很优美,但很多人不清楚它的由来,本篇主要来推导一下这个公式,并推广到点到面的距离公式。基础知识向量(vector):方向(direction)+大小(magnitude)向量点积(dot product): 图:向量AB,AC示意图 于是 另 。注: 点乘为两个向量对应乘积之和.向量 在向量 上的投影AD:图:投影示意图 所以,向量 在向量 ...

weixin_30969157的博客 835

求点到直线的最短距离及垂足

一、根据两点求直线方程 已知直线上两点为:(x1,x2),(y1,y2); 设方程为:Ax+By+C=0; 1. 求斜率:k=(y2-y1)/(x2-x1); 2. 直线方程为: y-y1=k(x-x1); 换算得:kx-y+y1-kx1=0,即: A=k B=-1 C=y1-kx1=y1-(y2-y1)/(x2-x1)*x1 二、求距离和垂足公式 1. 点(x0,y0...

weixin_30236595的博客 5342
上一篇: C++ 自定义函数 入门
下一篇: 函数指针(测试结果)
Draba_Chen
博客等级 码龄8年 134粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值