点到线段的最短矩离 及垂足的计算

在这里插入图片描述
过P做MN的垂线,垂足为Q,若Q在线段MN以内(包括与点M点N重合),则最短距离为垂线段长度,若垂足在MN以外,则最短距离为PM,PN中的较小者。(若P与MN共线,垂线长度为零,同样适用)
所以可由 Q位置判断
若Q在线段MN上 则
∣ M Q ∣ 2 + ∣ Q N ∣ 2 ≤ ∣ M N ∣ 2 \lvert MQ \rvert ^2 + |QN|^2 \leq |MN|^2 MQ2+QN2MN2

所以最小距离可表示为
{ ∣ P Q ∣ | M Q ∣ 2 + ∣ Q N ∣ 2 ≤ ∣ M N ∣ 2 M I N ( ∣ P N ∣ , ∣ P M ∣ ) ∣ M Q ∣ 2 + ∣ Q N ∣ 2 > ∣ M N ∣ 2 \left\{ \begin{array}{lcr} \lvert PQ \rvert & & \text |MQ | ^2 + |QN|^2 \leq |MN|^2 \\\\ MIN(|PN|,|PM|) & & \lvert MQ \rvert ^2 + |QN|^2 \gt |MN|^2 \end{array} \right. PQMIN(PN,PM)|MQ2+QN2MN2MQ2+QN2>MN2

计算垂足
∠ b = ∠ a + 90 ° \angle b = \angle a + 90\degree b=a+90°
tan ⁡ ( b ) = tan ⁡ ( a + π 2 ) = − cot ⁡ ( a ) \tan(b) = \tan (a + \frac {\pi}{2} ) = - \cot(a) tan(b)=tan(a+2π)=cot(a)
MN斜率为k PQ斜率为 -1/k

{ y q − y p x q − x p = − 1 k y = k x + b \left\{ \begin{array}{lcr} \frac { y_q - y_p} { x_q - x_p} = -\frac {1}{k} \\\\ y= kx + b & & \end{array} \right. xqxpyqyp=k1y=kx+b

点Q在MN上求解

{ x q = x p + k y p − k b 1 + k 2 y q = k x p + k 2 k y p + b 1 + k 2 \left\{ \begin{array}{lcr} x_q = \frac { x_p + k y_p - kb}{ 1 + k^2}\\\\ y_q = \frac { k x_p + k^2 k y_p + b}{ 1 + k^2} \\ \end{array} \right. xq=1+k2xp+kypkbyq=1+k2kxp+k2kyp+b

其中
{ b = y m − y n − y m x n − x m x m = x n y m − x m y n x n − x m k = y n − y m x n − x m \left\{ \begin{array}{lcr} b = y _m - \frac { y_n - y_m} { x_n - x_m} x_m = \frac { x_ny_m - x_m y_n} { x_n - x_m} & & \\\\ k = \frac { y_n - y_m} { x_n - x_m} & & \end{array} \right. b=ymxnxmynymxm=xnxmxnymxmynk=xnxmynym

代入 M N P 坐标 可算出 垂足坐标

水平与坚直另分一种情况直接求解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[机器学习] 低代码机器学习工具PyCaret库使用指北

PyCaret是一个开源、低代码Python机器学习库,能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率。PyCaret本质上是围绕几个机器学习库和框架(如scikit-learn、XGBoost、L…

每天半小时,让大脑变得更聪明

晚上好。 今天的文章,我想跟你分享一套简单又有效的「大脑保健操」。每天只需要很短的时间,就能有效地锻炼和强化你的脑力。 这些都是我践行了许多年的习惯,也有切实的实验和理论基础作为依托。 你不需要每天都完全按照这套模式来执行&#x…

Kafka篇:Kafka搭建、使用、及Flink整合Kafka文档

一、Kafka搭建 1、上传并解压改名 tar -xvf kafka_2.11-1.0.0.tgz mv kafka_2.11-1.0.0 kafka-1.0.0 2、配置环境变量 vim /etc/profile export KAFKA_HOME/usr/local/soft/kafka-1.0.0 export PATH$PATH:$KAFKA_HOME/bin source /etc/profile (使环境变量生效…

机器学习学习

机器学习类型(按学习方式分):监督学习、半监督学习、无监督学习、强化学习; 通过已知标签训练集训练模型,使用模型及逆行预测、测试; 向量表示法,其中每一维对应一个特征(feature)或者称为属性,记为[x1,x2,...,xn] 特征值、特征、标签,共同完成训练集的数据填充,最…

Linux C/C++ gdb调试正在运行的程序

启动程序,在新窗口进行如下操作 进程编号 ps -ef | grep 程序名[rootlocalhost 04demo]# ps -ef | grep core_demo root 2467 1657 0 23:56 pts/0 00:00:00 ./core_demo root 2703 2540 0 23:57 pts/1 00:00:00 grep --colorauto core_dem…

MySQL8.0免安装及phpmyadmin配置

安装包解压,运行mysqld文件后,启动net start,提示成功,但进入phpmyadmin登录页面后,输入用户名,提示不支持空密码,config.default.php设置密码后,提示 mysqli::real_connect(): (HY…

FreeRTOS基础(六):中断管理

在嵌入式系统开发中,中断管理是一个至关重要的概念。它允许我们的系统能够及时响应外部事件,而不需要通过轮询的方式来浪费宝贵的处理器资源。FreeRTOS作为一款广泛应用的实时操作系统,它提供了灵活且高效的中断管理机制,可以帮助…

搭建基于Django的博客系统增加广告轮播图(三)

上一篇:ChatGPT搭建博客Django的web网页添加用户系统(二) 下一篇:搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四) 功能概述 增加轮播图显示广告信息。 需求详细描述 1. 增加轮播图显示广告信…

STM32(九):USART串口通信 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中独立看门狗来实现检测按键点灯的程序。这篇文章我们来介绍一下如何用STM32单片机中USART通信协议来串口通信,并向XCOM发送信息。 一、实验原理 1.通信的介绍 首先,我们先介绍一下通信,何为通…

嵌入式linux系统中图片处理详解

大家好,今天给大家分享一下,嵌入式中如何进行图像处理,常见的处理方式有哪几种?这次将详细分析一下 第一:BMP图形处理方式 图形的基本特点,所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息…

DataCube 漏洞小结

在这里分享一下通过拖取 DataCube 代码审计后发现的一些漏洞,包括前台的文件上传,信息泄露出账号密码,后台的文件上传。当然还有部分 SQL 注入漏洞,因为 DataCube 采用的是 SQLite 的数据库,所以SQL 注入相对来说显得就…

海外高清短视频:四川京之华锦信息技术公司

海外高清短视频:探索世界的新窗口 在数字化时代的浪潮下,海外高清短视频成为了人们探索世界、了解异国风情的新窗口。四川京之华锦信息技术公司这些短视频以其独特的视角、丰富的内容和高清的画质,吸引了无数观众的目光,让人们足…

关于前端代码移动端的适配方案

为什么需要适配? 由于PC端和移动端的分辨率不同,前端展示的页面在两端设备如果原模原样的搬运则会导致PC端或移动端看到的画面相对于其设备的分辨率及其的不合理。 最为常见的是PC端正常浏览的网页没有做移动端适配,由于移动端分辨率普遍低于…

计算机基础之:平均负载与CPU使用率的关系

想象一下,你的厨房是一个操作系统,厨师是CPU,而菜谱上的任务就是进程。厨房的忙碌程度可以用“平均负载”来衡量,它反映了等待被处理的任务总数加上正在被厨师处理的任务数。而“CPU使用率”则相当于厨师实际在切菜、炒菜的时间比…

ChaosBlade混沌测试实践

ChaosBlade: 一个简单易用且功能强大的混沌实验实施工具 官方仓库:https://github.com/chaosblade-io/chaosblade 1. 项目介绍 ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力&…

【CVE-2021-3156】——漏洞复现、原理分析以及漏洞修复

文章目录 前言1、漏洞概述2、漏洞复现2.1、漏洞复现测试环境2.2、漏洞复现具体步骤 3、漏洞原理3.1、前置知识3.1.1、sudo3.1.2、sudoedit3.1.3、转义字符 3.2、漏洞分析 4、漏洞修复5、参考文献总结 前言 2021年01月27日,RedHat官方发布了Sudo缓冲区/栈溢出漏洞的风…

基于SSM前后端分离版本的论坛系统-自动化测试

目录 前言 一、测试环境 二、环境部署 三、测试用例 四、执行测试 4.1、公共类设计 创建浏览器驱动对象 测试套件 释放驱动类 4.2、功能测试 注册页面 登录页面 版块 帖子 用户个人中心页 站内信 4.3、界面测试 注册页面 登录页面 版块 帖子 用户个人中心页…

浮点数二分查找的实现

这是C算法基础-基础算法专栏的第六篇文章,专栏详情请见此处。 引入 上次我们学习了整数二分查找的实现,这次我们要学习浮点数二分查找的实现。 定义 浮点数二分查找与整数二分查找的定义都是大致相同的,如果想了解具体内容,可以移…

【Qt秘籍】[005]-Qt的首次邂逅-创建

一、如何创建文件? 当我们打开Qt Creator,你会发现整个界面类目繁多。现在,让我们直接开始新建一个项目。 1.点击左上角的“文件”>点击“新建文件或项目” 2.如图,选择“Application”>“Qt Wifgets application”> “…

机器学习笔记——SVM丝滑推导及代码实现,从硬间隔到软间隔再到核函数

前言 开始搓延期了一百年的机器学习实验,把SVM推导过程从定义到求解都刷了一遍,包括推导优化目标、提出对偶问题、利用KKT条件得到原问题的解以及SMO算法等。 注意:本文在某些地方比如KKT条件和SMO算法处不提供证明过程(太麻烦了喵)&#x…