网站建设中 目录是什么wordpress进行

张小明 2026/1/17 18:59:40
网站建设中 目录是什么,wordpress进行,discuz论坛 整合到网站,苏州网站建设制作方案先把这篇文章要解决的两件事说清楚#xff1a;平面在三维空间里#xff0c;到底怎么用数学表达#xff1f;那些 ax by cz d 0、NP d 0 是怎么推出来的#xff0c;不是死记硬背#xff0c;而是能“想”出来。在 Unity 里#xff0c;你如何用代码去表示、创建、使用这…先把这篇文章要解决的两件事说清楚平面在三维空间里到底怎么用数学表达那些ax by cz d 0、N·P d 0是怎么推出来的不是死记硬背而是能“想”出来。在Unity里你如何用代码去表示、创建、使用这个“平面”用Plane结构自己写怎么判断点在平面哪一侧怎么做射线相交我会尽量用大白话往下讲公式会有但每个公式都配上“人话解释”和“Unity 里的写法”。一、什么是“平面”先用直觉搞定它在三维空间里一条直线一维的一个平面二维的整个空间三维的。生活中随处都是平面地板、墙壁、桌面、显示器屏幕、纸张……甚至你眼前的“屏幕空间”本质上就是一个平面。但我们关心的是数学版本的平面它是无限延伸的、没有厚度的一块“无限大纸片”。想象一个无限大的桌面上面任何一个点都是“在这个平面上”平面外的点要么“在桌面上方”要么“在桌面下方”平面有一个朝着哪边的方向法线比如“桌面朝上的方向”。这三个关键元素平面上的一些点平面的“朝向”法线normal平面把空间分为“平面一侧 / 平面另一侧”。整个数学表达式的目标就是用一个干净的公式把这三件事全描述出来。二、从“法线 一点”推导平面公式一步一步来最常见、也最直观的形式其实不是一上来就写ax by cz d 0而是从下面这个开始平面 “通过空间中某一点 p₀并且垂直于某个方向向量 N 的所有点的集合”。2.1 给平面一个“朝向”法线向量 N法线向量 Nnormal就是从平面上“竖起来”的那个方向。比如桌面桌面向上法线朝上(0,1,0)如果某个墙面正对你法线可能是(0,0,1)或(0,0,-1)视你站哪边。法线有两个特点它垂直于平面上的任意方向方向可以上下颠倒N 和 -N 都是平面的法线但数学上要选一个固定的表示。2.2 平面上有一个已知点 p₀假设p0 (x0, y0, z0)这是我们“知道在平面上的一个点”。比如地板平面我们可以说(0,0,0)在上面桌面平面也可以随便选桌子上的某一点当 p0。2.3 平面上的任意一点 p和 p₀ 的“连线”必然在平面上给平面上的另一个点p (x, y, z) // 我们不知道具体位置只知道“它如果在平面上应该满足某种关系”连接 p0 和 p 的向量(p - p0) (x - x0, y - y0, z - z0)这条“连线向量”显然在平面内因为 p 和 p0 都在平面上。而法线 N 是垂直于平面的也就垂直于平面内的任何向量包括这条连线(p - p0)。垂直的数学表达式就是点乘为 0。2.4 关键一步用点乘表达“垂直”定义两个向量 A、B 垂直正交等价于A · B 0于是法线 N 和向量(p - p0)垂直N · (p - p0) 0展开写就是N (A, B, C) p (x, y, z) p0 (x0, y0, z0) N · (p - p0) (A, B, C) · ((x - x0), (y - y0), (z - z0)) A(x - x0) B(y - y0) C(z - z0)为了让 p 在平面上我们必须让A(x - x0) B(y - y0) C(z - z0) 0那这就是平面的向量形式方程。三、从 N·(p - p0) 0 推到 ax by cz d 0上一节的式子稍微整理一下A(x - x0) B(y - y0) C(z - z0) 0 → Ax - A*x0 By - B*y0 Cz - C*z0 0 → Ax By Cz ( -A*x0 - B*y0 - C*z0 ) 0把后面那一大坨称作 “d”d - (A*x0 B*y0 C*z0)于是Ax By Cz d 0这就是最常见的平面的一般方程ax by cz d 0其中法线N (a, b, c)d -N · p0。你只要记住一件事平面的一般式实际上就是N · P d 0N 是法线d 是“负的法线·平面上一点”。这一步推导下来你就不需要死记axbyczd0只要脑子里有那句“平面 那些让 N·(p-p0)0 的点”就能反推回来。四、用向量形式重写N·P d 0转换更自然把ax by cz看作向量点乘(a,b,c)·(x,y,z)N (a, b, c)P (x, y, z)平面方程可以写成N · P d 0这其实就是我们在编程中最常用的形式。4.1 为什么这个形式更好用因为它可以很自然地做三件事判断点在平面哪一侧如果N · P d 0在法线指向的那一侧如果 0在另一侧如果 0在平面上。做各种距离、投影、射线相交等等运算在 Unity 里Plane结构也是这么存的一个 Vector3 normal一个 float distance和 d 有一点符号上的定义差异下面详讲。五、“点在平面上 / 平面内侧 / 外侧”的判断逻辑我们来重点看这个操作因为在裁剪、Frustum Culling 里都要用。5.1 点是否在平面上平面N · P d 0。给定一个点 P如果N · P d 0P 在平面上如果 0在 N 指向的一侧如果 0在另一侧。简单例子平面地板y 0地板的法线我们可以取N (0,1,0)要构建平面方程随便取平面上一点比如 p0(0,0,0)d -N·p0 -(00100*0) 0方程0*x 1*y 0*z 0 0→y 0。任意点 P(x,y,z)N·P d 0*y 1*y 0*z 0 yy0在地板上方y0在地板下方y0在地板上。这就对应了我们的直觉。5.2 这个“0 / 0”在 Unity 中的约定是什么Unity 的Plane里plane.GetSide(point) 的逻辑是如果点在“法线指向的那一侧”返回 true否则 false。内部就是在做类似Vector3.Dot(normal, point) distance 0的判断注意它的 distance 定义方式稍微不一样后面讲。六、向量长度、单位法线与“点到平面的距离”顺便说一件常用的点到平面的距离怎么求平面N · P d 0其中 N 是法线但不一定是单位向量。给定一个点 Q我们代入v N · Q d这个 v 并不是“距离”而是一种带符号的“投影长度 × 法线长度”。真正的“点到平面的有符号距离”是distance(Q, plane) (N · Q d) / |N||N| 是法线向量的长度模如果 N 是单位向量长度 1那公式就简化为distance N · Q d。所以法线最好归一化单位化以后再用这样平面方程里的N·P d就直接是“点到平面的有符号距离”。在 Unity 的Plane结构里normal就被要求是单位向量。七、Unity 里的 Plane是怎么表示平面的Unity 中已经帮你封装好了一个Plane结构体就在UnityEngine命名空间里。7.1 Plane 的内部结构打开 Unity 文档可以看到简化publicstructPlane{publicVector3normal;// 平面法线单位向量publicfloatdistance;// 从原点到平面的距离沿着 normal 方向// ...}注意这里有一点Unity 的distance跟我们刚才的d有微妙区别平面的一般方程N · P d 0Unity 的 Plane约定为N · P distance 0并且 N 是单位向量。但官方说明中解释distance是“From the origin to the plane along its normal.”原点到平面的距离沿 normal 方向这说明 Unity 实际上用的是负号相反的形式更精确的关系是N · P d 0 数学一般形式 N · P distance 0Unity 内部但是 Unity 文档里说distance -d也就是distance -d结合d -N·p0distance -d N·p0也就是说Unity 里的 distance 原点到平面的有符号距离沿法线方向而我们前面推导的 d -distance。你记住一句实用的就好在 Unity 中一个平面可以用“单位法线 N 一个距原点的距离 distance”来唯一确定对平面上的点 P有Vector3.Dot(N, P) distance 0。八、在 Unity 里如何创建一个平面8.1 用三点创建一个平面三维几何里常见的套路给我三个不共线的点我就能确定一个唯一的平面。Unity 里有对应构造函数PlaneplanenewPlane(Vector3a,Vector3b,Vector3c);注意Unity 文档说明“Creates a plane passing through points a, b and c”内部做的事大致是计算两条边向量Vector3abb-a;Vector3acc-a;用叉乘得到法线垂直于平面Vector3nVector3.Cross(ab,ac).normalized;用 a 点来计算 distancedistance-Vector3.Dot(n,a);// 使得 n·P distance 0 在 a 点成立你也可以手动写Vector3a,b,c;Vector3normalVector3.Cross(b-a,c-a).normalized;floatdistance-Vector3.Dot(normal,a);PlaneplanenewPlane(normal,distance);8.2 用“法线 平面上一点”创建Unity 提供了PlaneplanenewPlane(Vector3inNormal,Vector3inPoint);内部相当于normalinNormal.normalized;distance-Vector3.Dot(normal,inPoint);也就是先规范化法线再用一个平面上的点p0求distance -n·p0。这对应的方程就是normal · P distance 08.3 用“法线 distance”直接创建如果你自己已经算好了法线和 distance注意符号约定可以直接PlaneplanenewPlane(Vector3normal,floatdistance);只是你得确认normal 是单位向量distance 是原点 P(0,0,0) 代入时满足normal·P distance 0的那个 d。九、在 Unity 中如何判断点在平面哪一侧Unity 给你封装了一个很简单的方法publicboolGetSide(Vector3point);返回 true点在平面正常方向一侧normal “指向”的那一边返回 false在另一边或就在平面上。等价代码大致publicboolGetSide(Vector3point){// 注意Plane 方程为 normal·P distance 0returnVector3.Dot(normal,point)distance0;}你可以这样用PlaneplanenewPlane(Vector3.up,Vector3.zero);// y0 地面Vector3p1newVector3(0,1,0);// 上方Vector3p2newVector3(0,-1,0);// 下方boolisAboveplane.GetSide(p1);// trueboolisBelowplane.GetSide(p2);// false这对应我们前面的数学N·P distance的符号决定了点在哪一侧。十、射线与平面的相交Raycast 到 Plane这在 Unity 里用得非常多比如鼠标点击屏幕 → 打一条射线 → 求射线与某个平面的交点点选地面根据摄像机视线与平面的交点确定放置物体的位置等等。Unity 提供了publicboolRaycast(Rayray,outfloatenter);返回bool射线是否与平面相交enter如果相交沿射线方向的距离。10.1 射线与平面相交的数学推导简单版射线ray(t) ray.origin ray.direction * t, t 0平面normal · P distance 0我们把 ray(t) 代入 Pnormal · (origin direction * t) distance 0 → normal·origin normal·direction * t distance 0记denom normal·directionnum -(normal·origin distance)则t num / denom如果 denom 0射线方向与平面平行要么永远不交要么整个在平面上。如果 t 0交点在射线反方向不算“射线与平面相交”如果 t 0射线与平面前方在 t 处有交点。Unity 的Plane.Raycast内部就是做这些事然后把 t距离通过 out enter 传出来。使用示例PlaneplanenewPlane(Vector3.up,0f);// y0 地面RayrayCamera.main.ScreenPointToRay(Input.mousePosition);if(plane.Raycast(ray,outfloatenter)){Vector3hitPointray.originray.direction*enter;// 在地面上点到了 hitPoint}十一、平面在 Unity 中的常见用途了解了平面数学 Unity 表示之后我们看几种典型用法。11.1 视锥裁剪Frustum Culling一个相机的视锥体由六个平面组成左、右、上、下、近、远。你可以在 CPU 端用这六个平面对每个物体的包围盒做测试如果包围盒完全在六个平面的外侧不渲染否则提交 DrawCall。Unity 中可以通过GeometryUtility.CalculateFrustumPlanes(Camera)获取这些平面Plane[]planesGeometryUtility.CalculateFrustumPlanes(Camera.main);Boundsboundsrenderer.bounds;// 物体包围盒boolisVisibleGeometryUtility.TestPlanesAABB(planes,bounds);内部就是用六个 Plane 来测试一个 AABB 是否有交集。11.2 UI 中的裁剪 / 自定义裁切区域有些高级效果会手动构造一个平面比如做一个“只显示某个区域内的物体”的效果或控制 Shader 里“平面一侧渲染另一侧透明”等。例如你可以在 Shader 中传入一个平面normal distance在片元阶段判断float side dot(_PlaneNormal, worldPos) _PlaneDistance; if (side 0) discard; // 平面外侧不画这就是用平面做“硬裁剪”的效果。11.3 地面点击 / 放置物体Ray 与 Plane 相交前面已经提到鼠标在屏幕上点一处通过Camera.ScreenPointToRay得到一条射线用Plane.Raycast求出射线与地面的交点在那一点放置物体。这是很多 RTS、MOBA、沙盒游戏里的基本操作。十二、最后给你一份“平面数学 Unity 用法”的心智速记卡把全篇浓缩成几条“记住就能用”的要点12.1 数学部分几何定义平面 所有满足 “N·(p - p0) 0” 的点的集合N法线垂直平面的方向p0平面上一点展开成一般方程N (a, b, c) d -N·p0 平面方程a x b y c z d 0 ≡ N · P d 0点在平面哪一侧v N · P d v 0 → 在平面上 v 0 → 在法线一侧 v 0 → 在另一侧点到平面的有符号距离如果 N 是单位向量distance N·P d否则distance (N·P d) / |N|12.2 Unity 部分Plane结构structPlane{publicVector3normal;// 单位法线publicfloatdistance;// 满足normal·P distance 0 的那个 distance}几种构造方式// 法线 一点Planep1newPlane(normal,inPoint);// 三点Planep2newPlane(a,b,c);// 法线 distancePlanep3newPlane(normal,distance);判断点在哪一侧boolsideplane.GetSide(point);// true 在法线一侧射线与平面相交if(plane.Raycast(ray,outfloatenter)){Vector3hitray.originray.direction*enter;}获取相机视锥平面 视锥裁剪Plane[]planesGeometryUtility.CalculateFrustumPlanes(Camera.main);boolvisibleGeometryUtility.TestPlanesAABB(planes,renderer.bounds);你可以把平面理解成“一块无限大的无形玻璃。数学上的平面方程就是用一个法线 一个距离把这块玻璃在三维空间里的位置和方向固定下来。Unity 里Plane这个结构就是帮你在代码里很方便地拿这块玻璃去干事测点在哪侧、射线碰到哪儿、物体是不是在这块玻璃的某一边等等。”当你理解了法线 一点 → 平面方程 → Unity.Plane 之间的对应关系“平面”就不再是一个需要死记硬背的数学概念而变成一个你随时可以在代码里拿起来用的空间工具。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

龙岗网站推广北京网站维护一般价格多少

在魔兽世界的激烈战斗中,一个精准高效的技能循环往往能决定胜负。GSE宏编辑器作为技能循环优化的专业工具,通过其独特的可视化编辑和智能序列管理功能,让玩家能够轻松构建复杂的输出循环。无论你是刚刚接触宏编写的新手,还是希望进…

张小明 2026/1/15 1:05:12 网站建设

求百度关键词搜索网站学习建网站

当 Multisim 数据库“罢工”时:从故障表象到通信内核的深度拆解 你有没有遇到过这样的场景? 打开 Multisim 准备画个运放电路,点击“放置元件”,结果弹出一个冷冰冰的提示:“ multisim数据库无法访问 ”。 元件列…

张小明 2026/1/15 1:05:10 网站建设

网络设计具体学哪些seo在线教学

123云盘免费解锁完整攻略:5分钟开启全功能VIP体验 【免费下载链接】123pan_unlock 基于油猴的123云盘解锁脚本,支持解锁123云盘下载功能 项目地址: https://gitcode.com/gh_mirrors/12/123pan_unlock 还在为123云盘的各种限制而烦恼吗&#xff1f…

张小明 2026/1/15 1:05:08 网站建设

井陉建设局网站公示企业网站建设背景

特殊结构系统的直接方法与误差分析 1. 对称系统的Cholesky分解 1.1 对称矩阵的LDU分解 假设矩阵 $A$ 是对称矩阵,即 $A^T = A$,我们寻求将其分解为 $A = LDU$ 的形式,其中 $L$ 和 $U$ 是单位三角矩阵,$D$ 是对角矩阵。 设 $A_1 = A$,将 $A_1 = LDU$ 写成如下分块形式:…

张小明 2026/1/15 1:05:07 网站建设

网站公司架构怎么注册公司邮箱

Spring JMX:全面指南与实践案例 1. Bean注册行为 在将Spring Bean暴露为JMX Bean时,通常会为MBean指定一个对象名,以便在MBeanServer中进行注册。一般情况下,将这些Bean暴露到新的或现有的MBeanServer不会有问题,但前提是现有的MBeanServer中没有与我们的MBean对象名冲突…

张小明 2026/1/15 1:05:05 网站建设

永久免费网站空间南京进出口贸易公司排名

FOFA搜索技巧:快速定位可用的YOLOv8部署资源 在智能视觉应用爆发式增长的今天,目标检测技术已成为自动驾驶、工业质检、安防监控等领域的核心支撑。YOLO(You Only Look Once)系列模型凭借其“一次前向传播完成检测”的高效架构&am…

张小明 2026/1/15 9:29:22 网站建设