当前位置: 首页 > article >正文

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

目录

空间中点到线段的距离

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

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.kler.cn/a/354880.html

相关文章:

  • 【CSS in Depth 2 精译_094】16.2:CSS 变换在动效中的应用(下)——导航菜单的文本标签“飞入”特效与交错渲染效果的实现
  • 【服务端】灰度引擎的过程中如何保证数据的一致性?
  • Java爬虫技术:按关键字搜索VIP商品详情
  • C 实现植物大战僵尸(一)
  • Mono里运行C#脚本5—mono_file_map_open
  • Flink调优----资源配置调优与状态及Checkpoint调优
  • 面对专利档案管理难题,我们该怎么办?
  • 用Java爬虫API,轻松获取电商商品SKU信息
  • 怎么在地图导航上添加自己的店面定位?
  • Centos7默认的python版本是2.7,现在很多新开发的python均需要3.X以上。下面升级centos的预装python版本到最新。
  • Python123练习题
  • Python网络爬虫:分析淘宝商品热度与销量[进阶深度优化]
  • 查看SQL执行计划 explain
  • learn C++ NO.26——哈希应用
  • 低代码可视化-uniapp购物车页面-代码生成器
  • Scala中reduce函数
  • 每天一个数据分析题(五百零七)- 集成学习算法
  • 【牛客刷题】笔记1
  • AI大模型:开启智能革命新纪元
  • CountUp.js 实现数字增长动画 Vue
  • AsyncTask的工作原理和缺陷
  • 供应链大变革:低代码技术助力企业数字化转型!
  • ES6扩展运算符
  • GitLab CVE-2024-6389、CVE-2024-4472 漏洞解决方案
  • java-uniapp小程序-引导关注公众号、判断用户是否关注公众号
  • Python知识点:如何使用Corda与Python进行企业区块链开发