随笔分类 -  算法及数据结构

用到的一些算法及数据结构
摘要:简单的消息发布订阅机制 以下是一个简单的使用 C++ 实现发布 / 订阅机制的示例代码。这个示例包含一个简单的事件系统,其中有发布者(Publisher)和订阅者(Subscriber)。 以下代码需要C++11以上支持 这个同时也是:成员函数被其他类掉调用的例子 #include <iostrea 阅读全文
posted @ 2024-10-09 10:03 南水之源 阅读(524) 评论(0) 推荐(0)
摘要:概述 有限状态机(Finite State Machine, FSM)和行为树(Behavior Tree, BT)都是用于游戏开发、机器人学以及其他需要实现复杂行为逻辑的领域中常用的设计模式。它们各自有独特的优点和缺点,适用于不同的场景。 有限状态机模式 (FSM) 定义: 有限状态机是一种数学模 阅读全文
posted @ 2024-09-29 09:26 南水之源 阅读(1907) 评论(0) 推荐(0)
摘要:概念简述: 人工势场法路径规划基本思想是将机器人在周围环境中的运动,设计成一种抽象的人造引力场中的运动,目标点对移动机器人产生“引力”,障碍物对移动机器人产生“斥力”,最后通过求合力来控制移动机器人的运动。应用势场法规划出来的路径一般是比较平滑并且安全,但是这种方法存在局部最优点问题。 这算法要求障 阅读全文
posted @ 2021-09-15 13:51 南水之源 阅读(2812) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/houzuoxin/article/details/16113895 其他参考:https://blog.csdn.net/xiaofengcanyuexj/article/details/41912169 RTree可以看做是二维或者多维空间中的B 阅读全文
posted @ 2020-09-23 18:12 南水之源 阅读(777) 评论(0) 推荐(0)
摘要:转载:B-树(B树) 原地址:https://blog.csdn.net/u010916338/article/details/86134334 其他参考:https://www.cnblogs.com/lianzhilei/p/11250589.html 一,B-树就是B树 英文名字叫做B-tre 阅读全文
posted @ 2020-09-23 18:05 南水之源 阅读(445) 评论(0) 推荐(0)
摘要:/***********分解三维空间抛物线************* 计算方法:已知空间两点,起始点(x0,y0,z0)与目标点(x1,y1,z1) 转化三维到二维 将起始点作为原点,用 目标点的向量v1(x1,y1) - 起始点的向量v0(x0,y0)得到方向向量 vectorReal 用得到的向 阅读全文
posted @ 2020-06-30 16:54 南水之源 阅读(2254) 评论(0) 推荐(0)
摘要://经纬度转Web墨卡托 Vector3 lonLat2WebMercator(Vector3 lonLat) { Vector3 mercator; double x = lonLat.x *20037508.34 / 180; double y = log(tan((90 + lonLat.y)*3.14 / 360)) / (3.14 / 180); y... 阅读全文
posted @ 2019-07-22 11:24 南水之源 阅读(837) 评论(0) 推荐(0)
摘要:算法需求: 传入【0~1】的时间time,返回【0~1】的路程。 整个路程distance【0~1】分为三段路径: 第一段:在0.25time的时间里,速度从0,位置从distance:0加速移动到距离distance:K 第二段:在0.25time时间里,位置从distance:k减速移动到某距离 阅读全文
posted @ 2019-01-02 16:18 南水之源 阅读(494) 评论(0) 推荐(0)
摘要:转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - QDomDocument TinyXml-2 RapidXml RapidXml版本: 1.13 P 阅读全文
posted @ 2018-12-17 10:22 南水之源 阅读(1718) 评论(0) 推荐(0)
摘要:背景: 目前我使用的spark粒子特效库是2.0 这个库好像是原来鬼火引擎的一部分,需要从github上找 现在我要将其使用到我自己开发的基于osgearth开的三维地图引擎中 步骤: 1.编译spark库 2.编译osgspark库,由王锐写的源码,社区或者github上有源码和粒子 3.将从os 阅读全文
posted @ 2018-11-14 09:49 南水之源 阅读(2377) 评论(4) 推荐(0)
摘要:RangeMode PIXEL_SIZE_ON_SCREEN 首先我们看看原始数据的构成: 第12层:(第一层) 第23层:(最后一层) pagelod下面有N多的pagelod一层包裹一层 通过osgviewer遍历时,会根据距离的远近加载不同层级的“小瓦片” 可以看出其stateset和geod 阅读全文
posted @ 2018-06-15 10:16 南水之源 阅读(3509) 评论(3) 推荐(1)
摘要:osgt文件中保存的格式: osg::Geometry { UniqueID 2 DataVariance STATIC StateSet TRUE { osg::StateSet { UniqueID 3 DataVariance STATIC AttributeList 1 { osg::Mat 阅读全文
posted @ 2018-06-05 15:23 南水之源 阅读(1814) 评论(0) 推荐(0)
摘要:参考:https://www.cnblogs.com/hzhg/archive/2010/12/17/1908764.html OSG中节点的访问使用的是一种访问器模式。一个典型的访问器涉及抽象访问者角色(Visitor), 具体访问者(Concrete Visitor), 节点角色(Node)。 阅读全文
posted @ 2018-06-05 14:13 南水之源 阅读(1021) 评论(0) 推荐(0)
摘要:查看osgconv.cpp main函数在533行 阅读全文
posted @ 2018-06-04 15:38 南水之源 阅读(923) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/dj0379/article/details/53577135 linux编程与windows编程的差异之处: 1. 文件与目录的大小写以及路径分隔符的差别 windows下不区分大小写,路径分隔符一般使用"/";linux下区分大小写,路径分隔符使 阅读全文
posted @ 2018-05-30 09:53 南水之源 阅读(4689) 评论(0) 推荐(0)
摘要:注意:Oa其实在OK的延长线上,上图只是为了好看才把Oa和OK分开了 算法需求如图所示: 已知空间向量OA和空间向量OB 我想算出OA向OB按某角度或者某时间移动 变成空间向量Oa的算法 先说废话:我一开始尝试了:空间平面、矩阵、四元素等等方式都能算出来,但是很繁琐。 然后发现,其实向量之间的算法完 阅读全文
posted @ 2018-04-13 15:31 南水之源 阅读(479) 评论(0) 推荐(0)
摘要:因为有时候需要大量的标志位来判断当前状态等。使用太多的int,bool等会使得程序不“漂亮” 这时候需要“位”操作来解决 建立一个标志位 在定义一些宏,如 control_w就是00000001 而 control_a 就是 0000010 control_max就是01111111 gobalMa 阅读全文
posted @ 2018-03-23 16:04 南水之源 阅读(1727) 评论(0) 推荐(0)
摘要:1.cos趋近 2.pow趋近 3. 4. 5. 6. 7. 8. 阅读全文
posted @ 2018-03-12 11:24 南水之源 阅读(943) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/yongh701/article/details/49154439 状态模式也是设计模式的一种,这种设计模式思想不复杂,就是实现起来的代码有点复杂。主要出现在类传递参数上,尤其是C++这种不能直接类间互相调用都语言,实现状态模式更难,当然,一切设计模式 阅读全文
posted @ 2017-06-22 13:53 南水之源 阅读(946) 评论(1) 推荐(0)
摘要:转自:http://blog.csdn.net/cbnotes/article/details/8516703 线程间的通信 1.线程之间的通信简介 一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程 阅读全文
posted @ 2017-06-14 18:34 南水之源 阅读(291) 评论(0) 推荐(0)