《3D 数学基础》几何检测-最近点

news2025/4/8 9:17:19

目录

1. 直线上的最近点

2. 射线上的最近点

3. 点到平面的距离

4. 圆或球上的最近点

5. AABB上的最近点


1. 直线上的最近点

q'是距离q的最近点,也就是q在直线上的投影。

其中p是直线上的点(向量表示),n是直线的法向量(单位向量),d是直线到原点的距离。

2. 射线上的最近点

其中p_org是起始点,d是单位向量,t是自变量,可以无限大。

(1)先求自变量t, 点乘v·d结果就是t,因为v在d方向的投影就是点乘;

(2)带入公式p(t) = p_org + td即可求得q'=p_org + (d·(q-p_org))d。

3. 点到平面的距离

 其中q是平面外的点,平面公式是q·n=d. p是平面上的点,n是法向量。

注意:和直线上的最近点公式是一样的。

4. 圆或球上的最近点

已知球心c和半径r,求q在球面的投影点q' 。d是c-q,其中加粗都是向量表示的点坐标。b是q到q'.

5. AABB上的最近点

AABB(Axis-Aligned Bounding Box,轴对齐的包围盒)是一个在三维空间中常用于表示物体边界的几何形状,通常由两个对角点(最小点和最大点)定义。要找到空间中的点到AABB上的最近点,可以使用以下方法:

  1. 检查点是否在AABB内部:

    • 如果点在AABB内部,那么点本身就是AABB上的最近点。
  2. 检查点是否在AABB的某个坐标轴上的区间内:

    • 对于每个坐标轴(x、y、z),检查点的坐标是否在AABB的最小坐标和最大坐标之间。如果是,那么点在该坐标轴上的投影就是AABB上的最近点。
  3. 否则,找到点到AABB上的最近点:

    • 对于每个坐标轴,如果点的坐标小于AABB的最小坐标,则将点的坐标设置为AABB的最小坐标;如果点的坐标大于AABB的最大坐标,则将点的坐标设置为AABB的最大坐标。
    • 现在,点的坐标就分别被截断到了AABB的各个坐标轴上的区间内,这就是AABB上的最近点。
import numpy as np

def closest_point_to_aabb(point, aabb_min, aabb_max):
    closest_point = np.copy(point)
    
    for i in range(len(point)):
        # Check if point coordinate is outside AABB
        if point[i] < aabb_min[i]:
            closest_point[i] = aabb_min[i]
        elif point[i] > aabb_max[i]:
            closest_point[i] = aabb_max[i]
    
    return closest_point

# 示例用法
point = np.array([2, 3, 4])  # 
# AABB
aabb_min = np.array([0, 0, 0])
aabb_max = np.array([5, 5, 5])

closest = closest_point_to_aabb(point, aabb_min, aabb_max)
print("最近点:", closest)

待续。。。

参考:35.几何检测_哔哩哔哩_bilibili

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

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

相关文章

基于行波理论的输电线路防雷保护

摘要 随着科技的发展&#xff0c;电力已成为最重要的资源之一&#xff0c;如何保证电力的供应对于国民经济发展和人民生活水平的提高都有非常重要的意义。输电线路的防雷保护就是重点之一。架空输电线路分布很广&#xff0c;地处旷野&#xff0c;易遗受雷击&#xff0c;线路的雷…

企业全域风控管理的最优解

后疫情时代&#xff0c;市场竞争加剧&#xff0c;呈现白热化状态&#xff0c;同时伴随企业的业务拓展、经营管理领域逐渐增多&#xff0c;企业面临的内外部风险、问题也呈指数增长趋势。 因此&#xff0c;企业在面临内外风险的双重压力下&#xff1a; 如何确保企业经营管理战…

【问题解决:配置】解决spring mvc项目 get请求 获取中文字符串参数 乱码

get类型请求的发送过程 前端发送一个get请求的过程&#xff1a; 封装参数进行URL编码&#xff0c;也就是将中文编码成一个带有百分号的字符串&#xff0c;具体可以在这个网站进行测试。http://www.esjson.com/urlEncode.html 进行Http编码&#xff0c;这里浏览器或者postman都…

【力扣1704】判断字符串的两半是否相似

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接&#xff1a;判断字符串的两半是否相似 给你一个偶数长度的字符串 s 。…

判断两个二叉树是否相等

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//两个都为空if(pNULL&&qNULL){return true;}//有一个为空if(pNULL||qNULL){return false;}//两个不为空&#xff0c;但值不相同if(p->val!q->val){return false;}//值相同return isSameTree(p->le…

微信小程序个人账号申请和配置详细教程

一、注册小程序管理账号 1、注册方法 在微信公众平台官网首页&#xff08;mp.weixin.qq.com&#xff09;&#xff0c;点击右上角的“立即注册”按钮。 2、选择注册的账号类型 选择“小程序”&#xff0c;点击“查看类型区别”可查看不同类型账号的区别和优势。 3、填写邮箱和…

如何利用 J2L3x 实现团队化作业

在当今快节奏的团队工作环境中&#xff0c;始终有一项问题不断困扰着许多企业&#xff0c;那就是团队成员之间的协同工作。这个问题越来越凸显出来&#xff0c;并在某种程度上影响了团队的效率和生产力。然而&#xff0c;随着科技的不断发展&#xff0c;有许多新的工具和平台可…

【学习笔记】Spring Security 01 认识Spring Security的重要特征(Features)

Spring Security 零、概述 Spring Security&#xff08;简称SS&#xff09;是一个高可用的、可自定义的身份认证和鉴权控制的框架。 类似的框架还有Shiro。 需求场景&#xff1a; 现今流行的web开发中&#xff0c;安全的第一位。 原本的鉴权开发流程&#xff1a;springweb自…

堆专题3 删除堆顶元素

题目&#xff1a; 样例&#xff1a; 输入 6 3 2 6 5 8 7 输出 7 5 6 3 2 思路&#xff1a; 堆顶的删除&#xff0c;就是取 或者 覆盖掉 h[1]&#xff0c;其中覆盖掉 h[1] 的操作&#xff0c;用向下调整操作堆即可&#xff0c;向下调整的过程相对简单&#xff0c;只需要将堆尾…

如何提高团队协作效率?看完这篇就懂了(附工具)

在竞争激烈的现代工作环境中&#xff0c;团队协作被认为是成功的关键之一。团队协作能够提高效率&#xff0c;增强创造力&#xff0c;并帮助团队成员达成共同目标。无论是在大公司还是小企业中&#xff0c;团队协作都是不可或缺的。在这篇文章中&#xff0c;我们将分享如何通过…

提高测试用例覆盖全面性 5大技巧

测试用例覆盖率越高&#xff0c;有助于尽早发现潜在的问题和Bug&#xff0c;从而保障了软件的质量和稳定性。而测试用例覆盖率可以帮助测试团队评估测试的全面性&#xff0c;发现测试用例的盲点和不足之处&#xff0c;从而提高测试的效率&#xff0c;帮助测试团队优化测试资源的…

OpenCV4(C++)—— 图像连通域的详细分析

文章目录 前言一、connectedComponents函数二、connectedComponentsWithStats函数 前言 图像连通域&#xff0c;其实就是图像分割的一种方法。它通过检测像素之间的连接关系和相似性来划分图像中的区域&#xff0c;以便进行后续处理。图像邻域和图像邻域分析就不介绍了&#x…

Redis第四五六章 持久化事务主从复制

Redis ⽀持 RDB 和 AOF 两种持久化机制&#xff0c;持久化功能有效地避免因进程退出造成数据丢失问题&#xff0c; 当下次重启时利⽤之前持久化的⽂件即可实现数据恢复。 目录 第四章 持久化 4.1 RDB 4.1.1 触发机制 4.1.2 流程说明 4.1.3 RDB ⽂件的处理 4.1.4 RDB 的优…

Autoform R11 R10 R8共存绿色免安装版(解压即用)

使用说明&#xff1a; 如杀毒软件报毒&#xff0c;请关闭。 保证路径正确D:\Autoform 1.首次使用&#xff0c;请点击“首次运行使用.vbs” &#xff08;以后就不用点了&#xff09; 2.打开R8~R11快捷方式即可使用 3.如果提示证书报错&#xff0c; 就重启电脑后就可以了&#…

信必优收到全国性综合类证券客户表扬信

近日&#xff0c;信必优收到全国性综合类证券客户表扬信&#xff0c;客户高度表扬我司驻场员工认真负责的态度和专业扎实的技术能力&#xff0c;任务承担快&#xff0c;工作效率高&#xff0c;对项目顺利开展做出了积极贡献。 客户成立于1988年&#xff0c;在全国21个省级区域…

mars3d使用自己的字体库添加对应的图标

需要引入对应的文件 引入对应的图标文件 使用 效果

【算法-动态规划】两个字符串的删除操作-力扣 583

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

【超分】A Benchmark for Chinese-English Scene Text Image Super-resolution

中英文场景文本图像超分辨率的基准 摘要&#xff1a;场景文本图像超分&#xff08;STISR&#xff0c;Scene Text Image Super-resolution&#xff09;就是将低分辨率图像恢复为具有令人愉快的视觉和可读的文本内容。现有工作都是处理笔画简单的英文字符而不是复杂的中文字符。…

Axure RP医疗在线挂号问诊原型图医院APP原形模板

医疗在线挂号问诊Axure RP原型图医院APP原形模板&#xff0c;是一款原创的医疗类APP&#xff0c;设计尺寸采用iPhone13&#xff08;375*812px&#xff09;&#xff0c;原型图上加入了仿真手机壳&#xff0c;使得预览效果更加逼真。 本套原型图主要功能有医疗常识科普、医院挂号…

【JavaEE初阶】 volatile关键字 与 wait()方法和notify()方法详解

文章目录 &#x1f332;volatile 关键字&#x1f6a9;volatile能保证内存可见性&#x1f6a9;volatile 不保证原子性 &#x1f38b;wait 和 notify&#x1f6a9;wait()方法&#x1f6a9;notify()方法&#x1f6a9;notifyAll()方法&#x1f6a9;理解notify 和 notifyAll &#x…