尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MATLAB人工势场算法无人机三维路径规划仿真源码解析
简介针对无人机三维航迹规划问题这份基于Matlab人工势场算法的源码包提供了从引力场与斥力场建模到路径求解的完整实现适合具备一定编程基础、希望快速上手智能路径规划算法的学生与工程师。包内共8个文件以7个m脚本为主涵盖主程序、角度计算、引力/斥力计算等核心功能模块另附1张运行结果图便于对照验证整体压缩包仅17KB结构精简可直接替换数据运行。该资源已有2479人学习是三维路径规划入门与算法对比研究的实用参考资料。借助人工势场法的梯度下降逻辑使用者还能进一步理解障碍规避与目标牵引的权衡机制为后续扩展改进算法或复现相关论文提供可修改的基础代码。1. 标题深挖这到底是一个什么项目看到这个标题我第一反应是这应该又是一份比较典型的工科研究生或本科毕设方向的MATLAB仿真项目。但仔细琢磨了一下这个组合其实挺有意思的matlab、人工势场算法、三维路径规划、无人机、源码这几个关键词拼在一起基本已经把这个项目的核心轮廓画出来了。先说清楚这个项目解决什么问题。无人机在空中飞行的时候最重要的任务之一就是规划出一条从起点到终点的安全路径同时要绕开空中的障碍物。市面上做路径规划的算法很多A*、RRT、遗传算法、粒子群算法都有人用每种算法各有优劣。人工势场算法在这个领域里算是一个比较经典、比较基础的方案——它的核心思想很直观把目标点想象成一个“引力源”把障碍物想象成“斥力源”无人机在这两种力的共同作用下沿着合力的方向前进最终到达目标点。这种思路的好处是计算简单、实时性高特别适合动态环境的局部路径规划。但坏处也很明显就是容易陷入局部极小值也就是无人机跑到一个不是目标点的地方但引力斥力刚好平衡飞不动了。标题里特别标注了三维这意味着不是简单的二维平面路径而是要考虑高度维度整个规划空间是XYZ三轴叠加的立体空间这对算法的实现和可视化都提出了更高的要求。这套源码适合谁如果你是正在学习路径规划算法的学生想找一个可以直接跑起来的参考工程或者你是在做无人机相关课题的研究人员需要一个快速验证算法效果的仿真平台再或者你是MATLAB初学者想看看一个完整的、带图形界面的仿真项目是怎么组织代码的——这个项目都是值得花时间去拆解一遍的。我个人认为这类带源码的工程项目最怕的就是“只跑通了没吃透”。所以我这篇博客就不打算停留在“能跑、出图好看”这个层面上而是要把这套人工势场算法在三维无人机路径规划里的实现逻辑、代码组织方式、参数调优技巧和常见坑位都摊开来聊一遍。2. 算法体系拆解人工势场为什么适合无人机三维规划2.1 从二维到三维模型发生了哪些变化人工势场算法的基础模型很好理解。假设整个飞行空间是一个势场目标点在空间中产生引力场无人机离目标点越远受到的引力越大障碍物产生斥力场无人机离障碍物越近受到的斥力越大。无人机每走一步都根据当前位置计算受到的合力然后沿着合力方向移动一个步长一直循环到抵达目标点附近。数学表达上引力场的基本形式是目标点的引力和无人机与目标点之间距离成正比方向指向目标点。斥力场则相对复杂一些需要设定一个影响半径只有在障碍物影响范围内的位置才会有斥力作用超出这个范围就不需要考虑了。在三维场景下这一切计算的数学本质和二维是一致的因为位置向量从二维变为三维力也随之变为三维向量但坐标系多了竖直方向的Z轴所以计算时需要处理128×3维度的矩阵运算这在MATLAB里通常是向量化操作效率上完全不是问题。真正的区别在于障碍物的构建方式。二维规划里障碍物一般是一个圆或者多边形碰到就绕开三维规划里的障碍物则是圆柱体、球体或者不规则体需要把无人机的安全飞行高度、地形起伏、禁飞区域等因素都考虑进去。这个建模的复杂度才是三维和二维最本质的区别。2.2 引力场与斥力场的数学构造细节写完整的三维人工势场代码核心就两个函数一个是计算引力一个是计算斥力。引力计算比较简单代码逻辑上一般是这样处理的function F_att calcAttractive(current, goal, zeta) % 引力与距离成正比方向指向目标点 dist norm(goal - current); F_att zeta * (goal - current) / dist; end这里的zeta是引力增益系数它的大小直接影响无人机向目标飞行的强度。这个系数如果设得太小无人机可能走到半路就被周围的斥力带偏如果设得太大又可能在障碍物附近由于速度过快而来不及避障甚至直接撞上去。实际调试的时候我一般会先把zeta定为1再根据仿真效果在一个量级范围内调整。斥力计算稍微麻烦一点因为要考虑影响半径function F_rep calcRepulsive(current, obstacle, eta, d0) % 计算无人机与障碍物的距离 dist norm(current - obstacle); if dist d0 % 在影响范围内斥力大小与距离成反比 F_rep eta * (1/dist - 1/d0) * (1/dist^2) * (current - obstacle) / dist; else F_rep [0, 0, 0]; end end这里面有两个要点。第一eta是斥力增益系数它和引力增益系数zeta的比值关系是路径规划效果好坏的关键。第二d0是障碍物的影响半径如果设得太大整个规划空间可能到处都有斥力无人机寸步难行如果设得太小则无人机直到快撞上障碍物才开始转向容易造成路径过激甚至碰撞。还有一点很多人容易忽略当无人机非常接近障碍物时dist趋近于零1/dist^2会爆炸导致斥力无穷大这在数值计算上会直接造成路径规划器“懵掉”。所以稳妥的做法是在计算距离时加一个安全底限比如dist max(dist, 0.1)避免出现除零或者数值溢出的情况。2.3 算法固有缺陷与工程应对策略人工势场算法最大的问题也是所有做过这个方向的人都会遇到的问题就是局部极小值陷阱。我用一个比喻来解释想象一个碗底凹下去的地形小球滚到碗底就停住了但小球的目标点在碗外面它怎么也出不来。人工势场也一样在某些障碍物布局下引力斥力会达成一个平衡状态无人机就悬在那里不动了。这个问题在三维空间中其实更容易发生因为空间的自由度更大障碍物构型更复杂。解决思路有以下几种我自己都试过效果各自不同第一种叫随机扰动法就是给无人机在极小值点附近加一个临时的小扰动帮它跳出平衡状态。实现很简单但运气成分大而且扰动太大会破坏路径的平滑性。第二种是引入虚拟目标点当检测到无人机连续若干步没有明显移动时在附近临时生成一个虚拟目标引无人机先朝虚拟目标飞一段再切回原目标。第三种是和其他全局规划算法融合使用比如先用A*或者RRT算出一条粗略的全局路径再用人工势场做局部的平滑和动态避障。源码解析后我发现这类项目的代码工程是偏向基础版本的主要用来理解和复现算法本身局部极小值问题的处理可能做得比较粗。我在自己的实操中建议至少把随机扰动法加上去能覆盖大部分测试场景的极小值问题。3. 代码工程架构与关键细节解读3.1 代码目录结构和职责划分拿到这份源码包解压之后不要急着运行先花五分钟把目录结构看清楚这样你能少走很多弯路。一个合格的MATLAB工程代码包通常会包含以下几类文件先说主脚本一般叫main.m或者demo.m这是整个工程的入口。运行时先设置场景参数如起点坐标、目标点坐标、障碍物位置和大小、增益系数、步长、迭代次数上限等然后调用路径规划函数最后完成结果的可视化展示。然后是核心函数集一般包含引力计算、斥力计算、合势场计算、路径迭代更新等独立的function文件。这类文件的特点是职责单一、便于单独测试和调参。比较好的代码风格是每个函数文件顶部都有注释说明输入输出参数的含义以及依赖关系方便别人二次开发。最后是可视化脚本负责把三维飞行路径、障碍物、势场分布图等在图形窗口里展示出来。这块在做三维场景时尤其重要因为如果你不把空间立体结构画出来光看一堆坐标数据很难判断路径的质量。可视化部分通常涉及对MATLAB三维坐标系的定义涉及坐标轴的等比例设置避免画面变形导致对距离的错误判断。关于这个加水平层面的坐标轴等比例设置很多人在做三维仿真时容易忽略。axis equal这个命令加上之后X、Y、Z三个方向的比例尺才是1:1:1否则MATLAB为了适应绘图窗口会让某个方向拉伸或压缩严重影响对真实空间关系的判断。3.2 三维障碍物建模与空间离散化采样这部分是工程落地时最值得认真设计的地方。在二维场景里障碍物通常用一个圆心坐标加半径来表示简单直接。但三维场景就不行因为实际上无人机飞行空间的障碍物形状复杂比如城市里的高楼、山区的山峰、风吹起来的临时禁飞区这些都不是简单球体可以精确描述的。常见的做法是把障碍物抽象成几个基本几何体的组合球体、圆柱体、长方体。用这些基本体去逼近真实障碍物然后在计算斥力时取无人机到障碍物表面最近点的距离。具体到代码层面计算距离的公式会因障碍物类型而不同球体障碍物距离等于无人机到球心的距离减去球半径。这是最简单的一种情况只要判断norm(current - center) radius就表示进入了障碍物范围内。圆柱体障碍物需要考虑XY平面投影的圆和Z轴的高度范围。无人机的水平投影距离到圆柱轴心的距离要小于半径同时无人机的Z坐标要低于圆柱高度才认为发生碰撞否则斥力为零。长方体障碍物要分别检测无人机在X、Y、Z三个方向上是否在长方体范围内计算表面距离时也相对复杂一些。在做这类空间离散化采样时还有一个重要的工程细节就是对无人机自身的尺寸进行处理。很多第一次做的人会直接把无人机当作一个质点来处理也就是一个只有位置没有大小的点。这在无障碍物的开阔空间里问题不大但在复杂环境里无人机机臂展开半径可能是半米如果按质点处理规划的路径距离障碍物表面可能只有几厘米实际飞起来早就撞了。行业内通用的做法是对障碍物做膨胀处理也就是把每个障碍物的半径加上无人机的安全半径用膨胀后的虚拟障碍物去计算斥力这样规划的路径才能真正具备可飞性。3.3 核心迭代流程与终止条件设置整个三维路径规划器的核心迭代流程可以概括为下面的步骤这也是代码阅读者需要重点掌握的地方第一步初始化起点位置、目标点位置、最大迭代次数和位置容差。第二步循环开始计算当前位置的引力向量和所有障碍物的斥力向量。第三步将吸引力与所有斥力向量进行向量叠加得到合力的方向。第四步沿合力方向移动一个步长更新无人机位置。第五步判断是否到达目标点或者达到迭代上限。判断到达的常用条件是无人机当前位置与目标点的距离小于一个预设阈值比如1米。第六步如果未到达且迭代次数没有用完就回到第二步继续循环。这里步长的设置也值得聊一下。步长在二维规划里一般就是二维平面上的移动距离在三维规划里则是三轴合成的空间移动距离。步长太大路径可能不够精细在复杂障碍物环境下容易跨过安全边界路径表现得更像折线穿越而不是平滑绕行步长太小则迭代次数激增仿真的计算时间会显著上升。实际调试时我一般会把步长设置在总规划空间跨度的百分之一到百分之二之间然后根据路径效果微调。至于迭代次数的上限不要设得太小因为在障碍物密集的复杂场景下路径规划可能需要几万次的迭代。设一个最大值比如50000次同时在代码里记录最终的迭代次数方便事后评估算法的收敛速度和效率。3.4 三维路径的可视化输出技巧这一节我觉得是很多初学者拿到代码后最关心但最容易被忽视的部分。正常跑完路径规划MATLAB命令行里会吐出一堆坐标数据或者绘制出一条三维曲线但如果你想让结果看起来像一份正经的、可以写进报告里的工程成果可视化绝对值得多花点心思。三维可视化的关键点有三个。第一要把起点和目标点用不同颜色的大圆点标出来最好再配上文字注释一眼就看清楚规划起点和终点在哪里。第二障碍物要用半透明的曲面来展示比如用surf或者scatter3生成球体、圆柱的表面透明度设为0.3到0.5既能看清障碍物的位置又不会遮挡路径曲线。第三路径曲线用蓝色或红色粗线绘制并可以用动态图来展示无人机沿路径移动的过程起到演示效果。这里我特别想提醒一个绘图细节如果障碍物是球体用sphere函数生成球面坐标后记得用surf绘制并设透明度。如果你是直接画一个不透明的球挡在路径前方你根本看不到路径是否穿过了障碍物整个图的价值就少了一半。同理如果你要表达无人机在某个时刻的安全距离可以在多个采样点画出表示机身半径的小球能非常直观地展示路径的安全性。另外MATLAB的plot3函数绘制三维路径时默认的线条是一个个线段连接起来的如果步长比较大路径看起来就是一条折线。想让路径更圆滑可以用smooth3或者csaps样条平滑算法对路径坐标进行处理后再绘制。但要注意平滑后的路径可能会偏移原路径的约束点所以平滑系数不能取得太大否则可能出现路径穿过障碍物的问题我一般控制在0.5以下。4. 参数调优经验怎么让路径又快又安全4.1 引力系数与斥力系数的平衡艺术人工势场算法里最核心的参数就两个引力系数zeta和斥力系数eta。这两个系数共同决定了无人机在势场中的受力特性也决定了路径规划的质量。如果画一张二维平面图X轴是无人机和障碍物之间的距离Y轴是斥力大小你可以看到随着距离缩小斥力迅速增大这个特性的陡峭程度就是由eta决定的。反过来引力的大小由zeta决定它随着无人机距离目标点的减小而线性递减。我把两者的平衡关系总结成一张经验表供大家在调参时参考场景特征zeta设置eta设置效果预期稀疏障碍物、开阔空间偏大1.5~2适中10~20路径短、收敛快、略微贴近障碍物密集障碍物、狭窄通道适中0.8~1.2偏大20~50路径较长但安全、容易绕远路复杂地形、多局部极小值较小0.5~0.8较大30~80安全优先、需要配合扰动策略这里要说明一下zeta和eta的实际有效范围跟规划空间的尺度有直接关系。如果你的仿真空间是1000米的范围那zeta取0.5和取5的效果完全不同所以这个表只是相对参考最终还是要根据自己场景的自由空间尺度去实际调试。一个我在实际调试中经常用的方法是先固定zeta从较小的eta值开始逐步增大观察路径变化趋势。当路径在某些狭窄区域出现反复震荡或者来回绕圈时说明eta过大或者zeta过小当路径非常贴近障碍物表面时说明eta偏小或者安全距离设置不到位。通过观察路径形态来反推参数问题比盲猜效率高得多。4.2 步长、影响半径与迭代上限的联动关系步长、影响半径和迭代上限不是孤立的参数它们之间有着联动关系调参时必须整体考虑。步长影响了路径的精细程度。设一个极端例子无人机在一个长宽高都是100米的空间里飞行步长为5米那路径上的总点数就很少穿越障碍物密集区域时可能会在某些位置“跳过”危险区域直接从上一步的安全位置跳到下一步的不安全位置表现就是路径穿过障碍物边缘。如果步长设置为0.5米路径点数大幅增加安全性提高但迭代次数也随之增加仿真时间变长。影响半径d0决定了无人机的“感知范围”也就是障碍物在多远之外就开始产生斥力。影响半径设得越大无人机绕障路径越早开始弯曲路径越平滑、越安全但缺点是可能过早偏离最优直线路径导致整体里程变长。影响半径设得太小则无人机只有在很近的距离内才开始避让路径会非常“晚转弯”甚至可能因为惯性或者步长过大而无法及时避开。在实际工程中我通常把影响半径设为步长的5到10倍这样既保证无人机有足够的反应距离又不会让路径过早跑偏。迭代上限则根据路径长度和步长的比值加上一个较大的冗余比如仿真空间对角线长度除以步长再乘以3基本就能确保算法有足够的迭代次数来完成规划。4.3 目标不可达问题的经典整改方案目标不可达是人工势场算法最经典的坑。具体表现是无人机在接近目标点的过程中如果目标点旁边刚好有障碍物那么障碍物的斥力会大于引力无人机无法到达真正的目标位置而是在目标点附近盘旋或者停滞。这个问题我在做项目时至少遇到过三次每次都花了不少时间去调参数后来找到一个比较有效的整改方案就是把斥力函数改造一下加上一个距离因子。原始的斥力只考虑无人机到障碍物的距离导致障碍物旁边的目标点也充满斥力改造后的斥力函数引入无人机与目标点的距离当无人机越靠近目标点时斥力会被逐渐削弱从而让引力成为主导无人机可以顺利抵达目标点。具体来说斥力公式可以改成这样F_rep eta * (1/dist - 1/d0) * (1/dist^2) * (norm(goal - current))^n * dir_away_from_obs;其中n一般取2dir_away_from_obs是障碍物指向无人机的单位方向向量。多了一个(norm(goal - current))^n的因子之后无人机靠近目标点时这个因子趋近于零斥力也随之趋近于零目标点附近就不会再出现“排斥”现象了。这个改进方案的代码改动量很小但效果立竿见影强烈建议大家实践一下。5. 常见问题与排查技巧实录5.1 为什么路径会直接穿过障碍物这个问题在三维场景里特别常见很多人跑完仿真发现路径一条直线穿过了障碍物第一反应是算法有问题但排查下来往往不是这样。路径穿过障碍物的原因通常有三个。第一个原因是步长太大无人机每一步跨越的距离超过了安全半径导致上一帧还在障碍物这一侧下一帧就跳到了对面路径线段从障碍物内部穿过但采样点本身都是安全的。这种情况可以通过细化步长解决或者碰撞检测用线段与障碍物求交而不是只用采样点判断。第二个原因是障碍物的膨胀处理不到位无人机被当作一个质点忽略了机体的实际尺寸。这种情况下需要给障碍物加上一个安全半径膨胀层确保路径与障碍物之间保持安全间隙。第三个原因是可视化坐标系的等比例设置没有做好这个问题前面提过路径本身没有穿障碍只是图像被压扁或者拉伸产生了视觉误判。5.2 无人机卡在局部极小值点的判断与处理卡在局部极小值点的现象很容易判断无人机的迭代次数一直在增加但每步的位置变化非常小几乎等于没动或者路径轨迹在一个小范围内反复绕圈无法继续向目标点推进。这种问题在算法层面有多种解决方法但在工程层面遇到这种情况时我建议按下面的顺序排查先检查障碍物信息和目标点的相对位置关系。如果目标点紧贴着障碍物那不是局部极小值而是引力斥力冲突导致的原理性问题优先套用第4.3节的目标不可达整改方案。如果目标点离障碍物很远但仍然卡住大概率是多障碍物斥力叠加后形成的合力与引力相抵消。此时可以试着把某个障碍物的影响半径调小或者把普通斥力改成只对最近障碍物响应的模式减少多斥力的叠加干扰。还有一种情况是某个障碍物的坐标或者半径设置错误障碍物实际上覆盖了整个目标路线无人机根本没有可通行的空间。这种情况需要仔细检查障碍物参数必要时先做一次几何可行性判断目标点和起点之间的连线是否与任何障碍物相交如果相交说明这条直线路径本来就不可行需要算法找出绕行路径。5.3 仿真速度慢到难以忍受怎么办如果你的场景里障碍物数量很多比如有几十个三维障碍物而路径又很长迭代次数到达数万次每步都要遍历所有障碍物计算斥力程序的运行时间可能达到几十秒甚至几分钟。这种性能问题的主要瓶颈就是重复计算。策略可以从两个方向入手。第一个方向是空间分区把规划空间划分成网格无人机只在当前网格及相邻网格内进行障碍物碰撞检测而不是每步都检测全部障碍物。MATLAB实现这个思路不算复杂预处理阶段把障碍物坐标存入网格索引迭代阶段查询当前网格的障碍物能减少90%以上的无效计算。第二个方向是向量化计算。MATLAB的循环效率确实不尽如人意所以尽量把障碍物坐标整理成矩阵在一次矩阵运算中计算无人机与所有障碍物的距离向量再用逻辑索引取出需要处理的部分这比写for循环遍历快很多倍。我实测过一个场景30个障碍物路径迭代20000次纯for循环版本耗时约25秒向量化版本压缩到4秒以内效果非常显著。5.4 复现源码时的环境配置建议MATLAB版本差异是复现这类源码项目时最常见的坑。人工势场算法的核心代码一般只用了最基础的矩阵运算和绘图函数所以2016年以后的MATLAB版本基本都能正常运行不需要安装额外的工具箱。唯一要注意的是一些绘图函数在不同版本中参数行为略有差异比如plot3的线条属性设置、scatter3的点大小参数在较新版本中可能有所调整。如果你拿到源码后发现运行报错先看错误信息是否和函数名、工具箱相关。如果提示找不到某个函数大概率是MATLAB版本过低。如果提示语法错误那可能是代码版本过新老版本不支持某些语法特性。最稳妥的做法是直接装一个R2020a以上的版本兼容性最好网上主流的开源代码基本都能直接跑。6. 总结与进一步扩展思路这套基于MATLAB的人工势场算法无人机三维路径规划项目作为一个学习样本价值还是很高的。它用最直白的方式展示了路径规划的核心流程建模、计算、迭代、可视化每一步都有对应的代码实现。你只要能把代码跑通再自己动手调整参数观察路径变化基本就能理解人工势场算法的全部要点。从我个人的实际经验来看做完这个基础项目之后后续有两条值得深入的方向。第一条是在现有基础上改进算法比如加入动态障碍物运动预测、加入多无人机协同避障、或是在势场函数里融合更复杂的约束条件这会让你的研究更接近真实的工程应用。第二条是把算法从MATLAB迁移到其他语言或平台上比如用Python重写一遍并接入ROS仿真环境或者把路径规划器嵌入到PX4等飞控系统里做半实物仿真。这条路的工程量会大不少但做完之后你会对整个无人机系统的软件架构有更深刻的理解。最后分享一个小技巧无论你后续怎么扩展这个项目一定要养成“每改一个参数就记录一次结果”的习惯最好用一个表格式的日志文件记录参数组合和对应的路径质量指标。人工势场算法的参数敏感性非常高很多时候你觉得玄学的问题事后看其实是参数之间互相作用的结果。做好记录你的调试效率会提高一倍不止。本文还有配套的精品资源点击获取
RELATED

相关推荐

OpenCV iOS 开发入门:使用 Xcode 链接 opencv2.framework 并编写 Hello World 应用

OpenCV iOS 开发入门:使用 Xcode 链接 opencv2.framework 并编写 Hello World 应用

OpenCV iOS 开发入门:使用 Xcode 链接 opencv2.framework 并编写 Hello World 应用 【免费下载链接】opencv Open Source Computer Vision Library 项目地址: https://gitcode.com/GitHub_Trending/opencv31/opencv 本指南基于 OpenCV 官方 iOS 教程&#xf…

📅 2026/9/8 22:08:54
如何修复 Compose Multiplatform 中文显示异常?字体配置排障实战

如何修复 Compose Multiplatform 中文显示异常?字体配置排障实战

如何修复 Compose Multiplatform 中文显示异常?字体配置排障实战 【免费下载链接】compose-multiplatform Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable. 项目地址…

📅 2026/9/8 22:03:53
trackerslist 公共 Tracker 列表配置指南:BitTorrent 下载提速方法

trackerslist 公共 Tracker 列表配置指南:BitTorrent 下载提速方法

trackerslist 公共 Tracker 列表配置指南:BitTorrent 下载提速方法 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist trackerslist 是一个持续维护的公共 BitTorr…

📅 2026/9/8 22:03:53
MORE NEWS

更多资讯

📰

基于VHDL的FPGA倒车雷达设计与实现:超声波测距+数码管显示+蜂鸣器报警

简介:一套基于VHDL的倒车雷达完整工程,面向FPGA数字电路学习者、电子竞赛备赛者以及汽车电子方向开发者。项目采用超声波探测方案,通过VHDL实现分频计时、距离计算与声光报警等核心逻辑,可有效模拟倒车辅助系统的工作流程&#xf…

📰

Adreno Neural Fusion:移动端GPU架构的范式革命

1. 这不是“又一颗新GPU”,而是移动计算架构的临界点跃迁 最近刷到“骁龙8Gen6 Adreno Neural Fusion GPU”这个命名,第一反应不是兴奋,而是皱眉——这串词里藏着三个被行业悄悄改写定义的关键词:“Adreno”不再是单纯图形处理器&…

📰

Ant Design Popover 实现“悬停 + 点击”双触发浮层:基于受控状态的嵌套 Popover 方案

Ant Design Popover 实现“悬停 点击”双触发浮层:基于受控状态的嵌套 Popover 方案 【免费下载链接】ant-design An enterprise-class UI design language and React UI library 项目地址: https://gitcode.com/GitHub_Trending/an/ant-design 本文围绕 An…

📰

DragonFace 2.2.3 全志IMG固件解包打包实战指南

简介:Dragonface2.2.3是一款专门面向全志处理器固件二次开发场景的图形化工具,支持对IMG格式固件解包、查看/修改文件系统并重新打包,解决开发者与DIY爱好者个性化定制系统时缺少便捷可视化工具的痛点。压缩包为7z格式,共506个文件…

📰

ESP32物联网演示台:从传感器到云平台的全链路实践

1. 为什么一块小板子能撑起整个物联网演示台?——从“口红说物联网”到真实数据链路的落地逻辑你可能在短视频里刷到过“口红说物联网”——一支口红大小的设备,讲清楚了传感器怎么采集、网关怎么转发、云平台怎么收数据。听起来像段子,但背后…

📰

macOS 磁盘修复实战:磁盘工具提示“无法修复“时,DiskWarrior 怎么用

macOS 磁盘修复实战:磁盘工具提示"无法修复"时,DiskWarrior 怎么用 【免费下载链接】awesome-macOS  A curated list of awesome applications, softwares, tools and shiny things for macOS. 项目地址: https://gitcode.com/GitHub_Tre…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬