空间解析几何3-空间点到线段和平面的距离【附MATLAB代码】

news2024/12/27 13:58:57

目录

空间中点到线段的距离

空间中点到平面的投影和距离

matlab代码

空间中点到线段的距离

空间中点到平面的投影和距离

matlab代码

function [dis,P2,t]= point2Line (A1,B1,C1)
%求空间一点到一线段的最短距离 
%[dis,P2,Q2]=pointSegmentDistance(A,B,C)
%A B为线段首末端点,C为空间一点
%dis为最短距离 P2 Q2为最短距离的首末端点

% 取0~1时P点在线段AB上滑动,>1 P点在B端点外,<0 P点在A端点外
A = B1(1)-A1(1);
B = B1(2)-A1(2);
C = B1(3)-A1(3);
D = A1(1)-C1(1);
E = A1(2)-C1(2);
F = A1(3)-C1(3);
t = -(A*D+B*E+C*F)/(A*A+B*B+C*C);
if t>1
    t=1;
elseif t<0
    t=0;
end
x1 = A1(1) + A*t;
y1 = A1(2) + B*t;
z1 = A1(3) + C*t;
dis = sqrt((x1-C1(1))^2+(y1-C1(2))^2+(z1-C1(3))^2);
P2 = [x1 ,y1,z1];
end
function result=Point2planceDis(P,n,Pn)
% output
% result 为点到平面的距离
% input
% P空间中一点 n为平面的单位法向量,Pn为平面上一点

A = n(1)*P(1)+n(2)*P(2)+n(3)*P(3);
B = n(1)*Pn(1)+n(2)*Pn(2)+n(3)*Pn(3);
C = n(1)^2+n(2)^2+n(3)^2;
t = (A-B)/C;
x = P(1)-t*n(1);
y = P(2)-t*n(2);
z = P(3)-t*n(3);
%投影点坐标
Q = [x,y,z];
%距离
PQ = P-Q;
result = norm(PQ);
end

下一章:空间解析几何4-空间中点到椭圆的距离【附MATLAB代码】

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

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

相关文章

【安当产品应用案例100集】021- 针对电网接入设备的控制指令安全解决方案

一、电网对接入设备的控制指令安全体现在哪些方面 电网接入设备的控制指令安全必要性不言而喻。为了保障电网的稳定运行、防止恶意攻击和破坏、提升电网智能化水平、满足法律法规和监管要求以及提升用户满意度和社会形象&#xff0c;必须加强电网接入设备的控制指令安全管理。…

2.html编辑器介绍

html编辑器介绍 HTML 编辑器推荐 理论上我们可以使用记事本进行html编码和开发&#xff0c;但是在实际开发html页面的时候&#xff0c;使用一些专业的开发工具可以使我们更加快速和高效的进行开发&#xff0c;下面介绍几种开发工具&#xff1a; VS Code&#xff1a;https://…

UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑

开发中经常会遇到编辑器环境中制作工具拖拽控制柄编辑内容的需求&#xff0c;此时可以通过Editor事件拿到对应回调&#xff0c;进行相应更新&#xff1a; 1.创建Mesh编辑Actor类 创建一个Mesh编辑Actor类&#xff0c;提供Mesh顶点编辑的相关逻辑。 .h: #pragma once#inclu…

机器人的应用 基于5G的变电站智慧管控系统

背景概述 一、电力行业面临的挑战与变革 随着全球工业化和信息化的快速发展&#xff0c;电力行业作为国民经济的基础性行业&#xff0c;其重要性日益凸显。然而&#xff0c;随着电力网络的不断扩展和复杂化&#xff0c;变电站和开关站作为电力传输与分配的关键节点&#xff0…

jdk环境变量配置--小总结

1、jdk安装路径变量 2、在path下添加环境变量

dbt doc 生成文档命令示例应用

DBT提供了强大的命令行工具&#xff0c;它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够为数据模型生成文档&#xff0c;这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 dbt doc 命令 dbt docs命令有…

大模型生图安全疫苗注入赛题解析(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月实践赛的大模型生图安全疫苗注入赛道&#xff1b;本文主要整理本次赛事的基本流程和优化方法。&#x1f495;&#x1f495;&#x1f60a; 一…

Qt:图片文字转base64程序

目录 一.Base64 1.编码原理 2.应用场景 3.优点 4.限制 5.变种 二.文字与Base64互转 1.ui设计 2.文字转Base64 3.Base64转文字 三.图片与Base64互转 1.ui设计 2.选择图片与图片路径 3.图片转Base64 4.Base64转图片 四.清空设置 五.效果 六.代码 base64conver…

第二十三篇:网络拥塞了,TCP/IP如何解决的?

一.显示拥塞通知 当发生网络拥塞时&#xff0c;发送主机应该减少数据包的发送量。作为IP上层协议&#xff0c;TCP虽然也能控制网络拥塞&#xff0c;不过它是通过数据包的实际损坏情况来判断是否发生拥塞。然而这种方法不能在数据包损坏之前减少数据包的发送量。 为了解决这个…

linux下使用mpi求自然数和

搭建MPI并行计算环境&#xff0c;编写 MPI程序&#xff0c;求和 1 23....1 0000。 要求: 1.使用100个进程; 2.进程0计算1 2...100, 进程1计算101 102... 200, ..... 进程99计算9901 9902... 10000; 3.调用计时函数,分别输出每个进程的计算时间; 4.需使用MPI集群通信函数和同…

三、ElementPlus下拉搜索加弹窗组件的封装

近期产品提出了一个需求&#xff0c;要求一个form的表单里面的一个组件既可以下拉模糊搜索&#xff0c;又可以弹窗搜索&#xff0c;我就为这个封装了一个组件&#xff0c;下面看效果图。 效果大家看到了&#xff0c;下面就看组件封装和实现方法 第一步&#xff0c;组件封装&…

第1章 开发板功能及使用介绍

1.开发板功能及使用介绍 本章主要内容 1.开发板功能介绍 2.开发板使用方法 介绍 STM32介绍 本章主要内容&#xff1a; 1.什么是STM32 2.STM32与ARM的关系 3.STM32F407ZGT6介绍 4.STM32能做什么 1.什么是STM32 从字面意义来看&#xff1a; ST&#xff1a;意法半导体&#xf…

HarmonyOS NEXT 应用开发实战(三、ArkUI页面底部导航TabBar的实现)

在开发HarmonyOS NEXT应用时&#xff0c;TabBar是用户界面设计中不可或缺的一部分。本文将通过代码示例&#xff0c;带领大家一同实现一个常用的TabBar&#xff0c;涵盖三个主要的内容页&#xff1a;首页、知乎日报和我的页面。以模仿知乎日报的项目为背景驱动&#xff0c;设定…

【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例

Spring AI 介绍 &#xff1a;简化Java AI开发的统一接口解决方案 在过去&#xff0c;使用Java开发AI应用时面临的主要困境是没有统一且标准的封装库&#xff0c;导致开发者需要针对不同的AI服务提供商分别学习和对接各自的API&#xff0c;这增加了开发难度与迁移成本。而Sprin…

Android常用界面控件——ProgressBar

ProgressBar 目录 ProgressBar 在XML中定义ProgressBar ProgressBar风格样式 ProgressBar常用XML属性 在Java代码中控制ProgressBar 实例 什么是ProgressBar&#xff1f; ProgressBar是Android中的一个视图控件&#xff0c;主要用于表示一个任务的进度情况&#xff0c;…

针对Ubuntu20.04 中的 Docker 配置可用镜像源(包含国内可用镜像源)

文章目录 写在前面一、Docker 官方源二、更换Docker 国内可用镜像源 &#xff08;推荐使用&#xff09;参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04&#xff0c;docker-27.3.1 一、Docker 官方源 打开 /etc/docker/daemon.json文件&#xff1a; sudo gedit …

Python快速编程小案例--逢7拍手小游戏

提示&#xff1a;&#xff08;个人学习&#xff09;&#xff0c;案例来自工业和信息化“十三五”人才培养规划教材&#xff0c;《Python快速编程入门》第2版&#xff0c;黑马程序员◎编著 逢7拍手游戏的规则是&#xff1a;从1开始顺序数数&#xff0c;数到有7或者包含7的倍数的…

查缺补漏----时间复杂度

1.如果每一次循环变量都是&#xff0c;那么直接将每一层变量的最大遍历次数相乘 第一个代码段&#xff1a;O&#xff08;n^3&#xff09; 第二个代码段&#xff1a;O&#xff08;n*i*j&#xff09;,由于 i 的范围0~n-1&#xff0c;所以取n&#xff0c;j 同理&#xff0c;所以最…

Java | Leetcode Java题解之第473题火柴拼正方形

题目&#xff1a; 题解&#xff1a; class Solution {public boolean makesquare(int[] matchsticks) {int totalLen Arrays.stream(matchsticks).sum();if (totalLen % 4 ! 0) {return false;}int len totalLen / 4, n matchsticks.length;int[] dp new int[1 << n…

【hot100-java】从前序与中序遍历序列构造二叉树

二叉树篇 首先创建一个映射来存储中序遍历中值与索引的关系&#xff0c;然后通过递归调用函数dfs来构建二叉树。函数dfs接受前序遍历和中序遍历的左右边界索引以及前序遍历和中序遍历的列表和映射作为参数&#xff0c;在每次递归中&#xff0c;先判断边界条件&#xff0c;如果左…