unity 数学 如何计算线和平面的交点
已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P
如下图

首先我们要知道向量归一化点乘之后得到就是两个向量的夹角的余弦值,如果两个向量相互垂直则值是0,小于0则两个向量的夹角大于90度,大于0则两个向量夹角小于90度,所以可以得出一下公式1:(p-p0)*n=0
而由于交点p是属于直线上的一点,所以我们能推倒出公式2:P=L0+dL;
然后我们把公式2导入到公式1得到:
(L0+dL-P0)*n=0
(L0-P0)*n+dL*n=0(点乘满足分配率)
(p0-L0)*n=dL*n
d=(p0-L0)*n/L*n(点乘满足结合律)
只要我们求出d的值带入公式2就能求出交点P.
/// <summary>/// 计算直线与平面的交点/// </summary>/// <param name="point">直线上某一点</param>/// <param name="direct">直线的方向</param>/// <param name="planeNormal">垂直于平面的的向量</param>/// <param name="planePoint">平面上的任意一点</param>/// <returns></returns>private bool GetIntersectWithLineAndPlane(Vector3 point, Vector3 direct, Vector3 planeNormal, Vector3 planePoint,out Vector3 result){result = Vector3.zero; //要注意直线和平面平行的情况float d1 = Vector3.Dot(direct.normalized, planeNormal);if(d1 == 0)return false;float d2 = Vector3.Dot(planePoint - point, planeNormal);float d3 = d2 / d1;result = d3 * direct.normalized + point;return true;}相关文章:
unity 数学 如何计算线和平面的交点
已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们要知道向量归一化点乘之后得到就是两个向量的夹角的余弦值,如果两个向量相互垂直则值是0,小于0则两个向量的夹角大于90度,大于…...
Mysql DATETIME与TIMESTAMP的区别
TIMESTAMP的取值范围小,并且TIMESTAMP类型的日期时间在存储时会将当前时区的日期时间值转换为时间标准时间值,检索时再转换回当前时区的日期时间值。 而DATETIME则只能反映出插入时当地的时区,其他时区的人查看数据必然会有误差的。 DATETI…...
hadoop基础
启动Hadoop cd /usr/local/hadoop ./sbin/start-dfs.sh #启动hadoop打开 ./bin/hdfs dfs ./bin/hdfs dfs -ls 针对 DataNode 没法启动的解决方法 cd /usr/local/hadoop ./sbin/stop-dfs.sh # 关闭 rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的…...
2024目前三种有效加速国内Github
大家好我是咕噜美乐蒂,很高兴又和大家见面了!截至2024年,国内访问 GitHub 的速度受到多种因素的影响,包括网络封锁、地理距离、网络带宽等。为了提高国内用户访问 GitHub 的速度,以下是目前较为有效的三种加速方式&…...
2024高频前端面试题 HTML 和 CSS 篇
JS和ES6 篇: 2024高频前端面试题 JavaScript 和 ES6 篇-CSDN博客 一 . HTML 篇 1. H5有什么新特性 1) 语义化标签 用正确的标签做正确的事情。 html 语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析&…...
LeetCode 100231.超过阈值的最少操作数 I
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 一次操作中,你可以删除 nums 中的最小元素。 你需要使数组中的所有元素都大于或等于 k ,请你返回需要的 最少 操作次数。 示例 1: 输入:nums [2,11,10,1,3], k 10 输…...
Pygame教程01:初识pygame游戏模块
Pygame是一个用于创建基本的2D游戏和图形应用程序。它提供了一套丰富的工具,让开发者能够轻松地创建游戏和其他图形应用程序。Pygame 支持许多功能,包括图像和声音处理、事件处理、碰撞检测、字体渲染等。 Pygame 是在 SDL(Simple DirectMed…...
HTML和CSS (前端共三篇)【详解】
目录 一、前端开发介绍 二、HTML入门 三、HTML基础标签 四、CSS样式修饰 五、HTML表格标签 六、HTML表单标签 一、前端开发介绍 web应用有BS和CS架构两种,其中我们主要涉及的是BS架构。而BS架构里,B(Browser浏览器)是客户端的…...
Linux——进程控制(二)进程等待
目录 前言 一、进程等待 二、如何进行进程等待 1.wait 2.waitpid 2.1第二个参数 2.2第三个参数 3. 等待多个进程 三、为什么不用全局变量获取子进程的退出信息 前言 前面我们花了大量的时间去学习进程的退出,退出并不难,但更深入的学习能为本…...
多线程导入excel
设置线程池参数,创建线程池 corePoolSize要保留在池中的线程数,即使它们是空闲的,除非{code - allowCoreThreadTimeOut}被设置maximumPoolSize允许在池中的最大线程数keepAliveTime当线程数大于核心时,这是多余的空闲线程将在终止…...
设计模式(十五)状态模式
请直接看原文:设计模式系列 ------------------------------------------------------------------------------------------------------------------------------- 前言 建议在阅读本文前先阅读设计模式(十一)策略模式这篇文章,虽说状态…...
Java基于SpringBoot的在线文档管理系统的设计与实现论文
摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,在线文档管理当然也不能排除在外。在线文档管理系统是以实际运用为开发背景,运用软件工程原理和开发方法&am…...
突破编程_C++_STL教程( list 的高级特性)
1 std::list 的排序 1.1 基础类型以及 std::string 类型的排序 std::list的排序可以通过调用其成员函数sort()来实现。sort()函数使用默认的比较操作符(<)对std::list中的元素进行排序。这意味着,如果元素类型定义了<操作符ÿ…...
Scratch 第十六课-弹珠台游戏
第十六课-弹珠台游戏 大家好,今天我们一起做一款弹珠台scratch游戏,我们也可以叫它弹球游戏!这款游戏在刚出来的时候非常火爆。小朋友们要认真学习下! 这节课的学习目标 物体碰撞如何处理转向问题。复习键盘对角色的控制方式。…...
对简单工厂模式、工厂方法模式的思考
目录 1 背景1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2 简单工厂模式3 工厂方法模式4 思考4.1 改进工厂方法模式 1 背景 题目源自:【设计模式专题之工厂方法模式】2.积木工厂 1.1 题目描述 小明家有两个工厂,一个用于生产圆形积木…...
【详识JAVA语言】面向对象程序三大特性之二:继承
继承 为什么需要继承 Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。 比如&…...
【剑指offer--C/C++】JZ3 数组中重复的数字
一、题目 二、本人思路及代码 这道题目它要求的时间空间利用率都是n,那么可以考虑创建一个长度为n的数组repeat初始化为0,下标代码出现的数字,下标对应的数组内容代表该下标数字出现的次数。然后遍历提供的数组,每出现一个数字&a…...
基于SpringBoot的在线拍卖系统设计与实现(源码)
项目源码:https://gitee.com/oklongmm/biye2 引言 随着互联网技术的发展,电子商务得以快速发展,其中之一的在线拍卖系统也逐渐得到了广泛的应用。但是,现有的在线拍卖系统在操作复杂性、安全性和稳定性方面存在一定的问题。为了…...
卢森堡比利时土耳其媒体宣发稿助力跨境出海推广新闻营销
【本篇由言同数字科技有限公司原创】随着全球化进程的加速,越来越多的品牌开始考虑在海外市场扩展业务。对于品牌来说,跨境海外推广是必要的,因为它可以帮助品牌打开更大的市场、吸引更多的消费者、提高品牌知名度和形象,并在全球…...
冒泡排序(C语言详解)
原理:从左到右一次比较,如果左侧数字比右侧数字大(小),则两数交换,否则比较下一 组数字,每一次大循环比较可以将乱序的最右侧数字改为最大(最小),…...
YOLOX训练避坑指南:从VOC数据集制作到模型调优的全流程实战
YOLOX实战避坑手册:VOC数据集构建与工业级调优策略 当你第一次在屏幕上看到YOLOX识别出目标物体时,那种成就感就像解开一道复杂的数学题。但在此之前,大多数开发者都会在数据准备、环境配置和参数调优这三个环节反复跌倒。去年我们团队在智能…...
DotNetPy:现代.NET 与 Python 互操作 实战指南捉
我为什么会发出这个疑问呢?是因为我研究Web开发中的一个问题时,HTTP请求体在 Filter(过滤器)处被读取了之后,在 Controller(控制层)就读不到值了,使用 RequestBody 的时候。 无论是字…...
香橙派RK3588驱动开发避坑实录:VSCode+Clangd环境搭建与‘version magic’错误解决
香橙派RK3588驱动开发避坑实录:VSCodeClangd环境搭建与‘version magic’错误解决 在嵌入式Linux驱动开发领域,香橙派RK3588凭借其强大的性能和丰富的接口资源,正成为越来越多开发者的首选平台。然而,从零开始搭建一个高效的开发…...
Node Modules Inspector:可视化你的Node.js依赖关系,5分钟快速上手指南
Node Modules Inspector:可视化你的Node.js依赖关系,5分钟快速上手指南 【免费下载链接】node-modules-inspector Interactive UI for local node modules inspection 项目地址: https://gitcode.com/gh_mirrors/no/node-modules-inspector Node …...
如何轻松地使用隔空投送将iPhone内容传输到Android
过去,安卓和苹果用户在设备间共享文件一直很麻烦。然而,如今迎来了一个重大转折点——我们可以使用 AirDrop 将 iPhone 文件传输到安卓设备。尽管这项功能已经发布几天了,但很多人仍然不知道如何从 iPhone 向安卓设备发送 AirDrop 文件。现在…...
Python内存管理机制详解:面试必问
目录 一、为什么面试官总爱问内存管理? 二、Python内存管理核心架构 三、PyObject:所有Python对象的祖先 四、引用计数:最基础的内存管理方式 1. 引用计数的工作原理 2. 循环引用 —— 引用计数的死穴 五、垃圾回收(GC&…...
lingbot-depth-vitl14镜像部署教程:从魔搭社区权重加载到双服务(7860+8000)启用
lingbot-depth-vitl14镜像部署教程:从魔搭社区权重加载到双服务(78608000)启用 1. 引言:为什么选择LingBot-Depth? 如果你正在寻找一个能同时搞定“单目深度估计”和“深度补全”的模型,那么LingBot-Dept…...
计算机视觉算法工程师职业规划:从入门到专家的成长路径
计算机视觉算法工程师职业规划:从入门到专家的成长路径 【免费下载链接】cv_note 记录cv算法工程师的成长之路,分享计算机视觉和模型压缩部署技术栈笔记。https://harleyszhang.github.io/cv_note/ 项目地址: https://gitcode.com/gh_mirrors/cv/cv_no…...
3步颠覆传统:Hyper-V DDA图形工具让设备直通效率提升10倍
3步颠覆传统:Hyper-V DDA图形工具让设备直通效率提升10倍 【免费下载链接】DDA 实现Hyper-V离散设备分配功能的图形界面工具。A GUI Tool For Hyper-Vs Discrete Device Assignment(DDA). 项目地址: https://gitcode.com/gh_mirrors/dd/DDA 问题发现&#x…...
Multisim电路仿真与Qwen3.5-2B结合:自动化生成电路分析报告
Multisim电路仿真与Qwen3.5-2B结合:自动化生成电路分析报告 1. 电子工程师的设计痛点 每个电子工程师都经历过这样的场景:在Multisim中反复调整电路参数,盯着示波器波形来回对比,手动记录各项性能指标,最后还要花大量…...
