分类: 数据结构与算法

11 篇文章

thumbnail
IK算法 – Two Bones IK
概述 最简单的IK算法; 问题 当给定一个约束点,它的解空间是两个球的交点,也就是说解出了一个圆环,在圆环上的任何一个点解都是有效的; 解决方法是给一个ReferenceVector参考向量,沿着参考…
thumbnail
IK算法 – CCD
概述 简单的两骨IK可以通过Two Bones IK解决,但实际开发中有许多多骨骼的链式IK,同时人体的不同骨骼有不同的约束,Two Bones IK难以解决,此时可以通过CCD求解; 核心思想 把节…
thumbnail
NavMesh 之拐角路径优化
概述 Unity的NavMesh在生成寻路网格后,网格多边形是不规则的,要如何沿着直线前进呢?这就要用到拐角路径优化技术了,这使得物体始终朝着下一个可见拐角移动,直至到达目标。 思路 以一个简单的例子…
thumbnail
Unity 的 RVO 避障
概述 在Unity的NavMesh官方文档中提到,转向逻辑采用下一个拐角的位置并基于该位置计算出到达目标所需的方向和速度,但使用所需的速度移动物体可能会导致与其他物体发生碰撞。 动态避障系统将选择新的…
红黑树
概述 概念 红黑树也是是一种自平衡的二叉搜索树,与AVL树不同的是它在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black; 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树…
AVL 树
概述 平衡因子 某节点左右子树的高度差 AVL树的特点 每个节点的平衡因子只可能是1、0、-1(绝对值 ≤ 1,如果超过 1,称之为“失衡”),所以每个节点的左右子树高度差不超过1 搜索、添加、删除的…
Astar 寻路算法
概述 A* = Dijkstra + 启发式函数 A*是Dijkstra的启发式改进版,目的在于解决Dijkstra效率低的问题。Dijkstra不知道目标节点的位置,所以只能向所有方向扩展直到发现目…
Dijstra 寻路算法
概述 迪杰斯特拉算法是一种广为人知的最短路径算法,下面叫做Dijkstra; Dijsktra和BFS的本质区别在于BFS是按照人为预先定义好的顺序访问容器中的节点,而Dijsktra是访问当前容器中…
排序算法的稳定性
概述 排序稳定性是指在排序算法中,具有相同键值的元素在排序前后保持原有的相对顺序不变的性质(大小相同的两个值在排序之前和排序之后的先后顺序不变)。 排序算法的稳定性是一个重要的特性,它在某些应用场景中…