- 博客(72)
- 资源 (1)
- 收藏
- 关注
原创 godot引擎学习6
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:16:17 854
原创 godot引擎学习5
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:14:54 944
原创 godot引擎学习4
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:13:44 1400
原创 godot引擎学习3
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:11:51 545
原创 godot引擎学习2
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:10:27 601
原创 godot引擎学习1
Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。
2022-11-11 13:07:35 937 1
原创 开源数学库
下面我来介绍几个非常有益的c/c++数学计算库,他们基本上都是开源的,你完全不必担心版权问题,他们都是一些自由软件,你要做的仅仅是仔细阅读他们的授权协议确保不要滥用就可以了:计算几何算法库 CGALCGAL ,计算几何算法库,是一个大型C + +库的几何数据结构和算法,如Delaunay三角网,网格生成,布尔运算的多边形,以及各种几何处理算法。 CGAL是用来在各个领域:计算机图形学,科学可视化,计算机辅助设计与建模,地理信息系统,分子生物学,医学影像学,机器人学和运动规划,和数值方法。 下载网址 ..
2021-12-15 16:33:28 1886
原创 Godot的编译
1, 前期准备Scons是一个开放源码、以Python语言编码的自动化构建工具。可以将SCons看作是经典Make实用程序的改进的、跨平台的替代品,其集成功能类似于autoconf/automake和编译器缓存(如ccache)。 [1]scons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具。它是一种改进,并跨平台的gnu make替代工具,其集成功能类似于autoconf/automake 。scons是一个更简便,更可靠,更高效的编译软件。htt.
2021-09-16 09:50:56 1337
原创 libzmq分布式队列
1, 下载源码https://github.com/zeromq/libzmq2,cd进入libzmq目录,执行:cmake -H. -Bbuild -G"Visual Studio 14 2015 Win64"通常cmake都能成功,这就在build目录下生成了一个vs2015的编译工程,名称是ZeroMQ.sln3,PUB SUB. 经典的发布-订阅套路,单向数据分发在使用SUB套接字时,必须使用zmq_setsockopt()方法来设置订阅的内容PUB-SUB套接...
2021-02-22 17:56:27 452
原创 STUN协议流程
STUN协议定义了三类测试过程来检测NAT类型:Test1:STUN Client通过端口{IP-C1:Port-C1}向STUN Server{IP-S1:Port-S1}发送一个Binding Request(没有设置任何属性)。STUN Server收到该请求后,通过端口{IP-S1:Port-S1}把它所看到的STUN Client的IP和端口{IP-M1,Port-M1}作为Binding Response的内容回送给STUN Client。 Test1#2:STUN Client通过端.
2020-07-01 09:26:01 2293
原创 C++子线程让主线程执行回调
1, 生产者,消费者模型,数据队列2,窗口消息void UiCtx::SendFunc(std::function<int()> func){ EventFunc *evt = new EventFunc(); evt->func = func; ::SendMessage(wxTheApp->GetTopWindow()->GetHWND(), WM_MSG_KING_FUNC, 0, (LPARAM)evt);}void UiCtx:...
2020-05-29 10:58:05 3698
原创 Bloom Filter计算方法
如需要判断一个元素是不是在一个集合中,我们通常做法是把所有元素保存下来,然后通过比较知道它是不是在集合内,链表、树都是基于这种思路,当集合内元素个数的变大,我们需要的空间和时间都线性变大,检索速度也越来越慢。 Bloom filter 采用的是哈希函数的方法,将一个元素映射到一个 m 长度的阵列上的一个点,当这个点是 1 时,那么这个元素在集合内,反之则不在集合内。这个方法的缺点就是当检测的元素很...
2020-02-17 11:16:05 590
原创 MPP简介
MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP是将任务...
2020-02-15 14:24:07 515
原创 leveldb 源码导读
1, slice.h中slice是leveldb内部使用的字符串类,代码很简单2, LevelDB 存储编码对于字节存储分大端小端字节序还是小端小端字节序LevelDB使用的是小端字节序存储,低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。编码分为变长的VarInt和固定大小FixedInt两种,每种分32位和64位。固定大小的FixedInt32和FixedInt6...
2020-02-14 09:06:05 221
原创 LevelDB初识
LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM(Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销。leveldb::DB...
2020-02-09 11:54:55 233
原创 SkipList学习
结构体定义://定义key和value的类型typedef int KeyType;typedef int ValueType; //定义结点typedef struct nodeStructure* Node;struct nodeStructure{ KeyType key; ValueType value; Node forward[1];};...
2020-02-09 09:22:19 177
原创 TF-IDF算法
TF-IDF算法1.找出各自文章的关键词并合成一个词集合2.求出两个词集合的并集(词包)3.计算各自词集的词频并把词频向量化4.带入向量计算模型就可以求出文本相似度词频TF,词频是一个词语在文章或句子中出现的次数。如果一个词很重要,很明显是应该在一个文章中出现很多次的反文档频率IDF=log(文章总数/含该词的文章数+1)1.为什么+1?是为了处理分母为0的情况。假如所有的文章都不...
2020-01-20 10:44:31 487
转载 倒排索引学习
在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。得到正向索引的结构如下: “文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。 “文档...
2020-01-17 12:33:53 266
原创 用cocos2d开发普通应用
http://cocos2d-x.org/filedown/cocos2d-x-3.16.zipCOCOS_CONSOLE_ROOT环境变量E:\cocos2d-x-3.16\tools\cocos2d-console\bin将环境变量中 COCOS_CONSOLE_ROOT 的 变量值复制pathpython cocos.py new ProjectName -p com.mygam...
2019-11-15 15:34:30 480
原创 Vcpkg学习使用
1,从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。可凭喜好下载到任意文件夹位置2,编译Vcpkg,编译很简单,使用PowerShell执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令,即可编译。编译好以后会在同级目录下生成vcpkg.exe文件。编译期间,脚本会自动下载vswhere组件。3,...
2019-10-30 11:51:41 1446
转载 CLucene 的存储结构概述
Clucene的检索算法属于索引检索,即用空间来换取时间,对需要检索的文件、字符流进行全文索引,在检索的时候对索引进行快速的检索,得到检索位置,这个位置记录检索词出现的文件路径或者某个关键词。Clucene 在存储它的全文索引结构时,是有层次结构的,这涉及到5个层次:索引(Index);段(Segment);文档(Document);域(Field);词(Term),他们的关系如下图所示:(l...
2019-10-23 11:56:09 390
原创 CLucene中文件.tii文件和.tis文件格式
词典(tis)及词典索引(tii)信息在词典中,所有的词是按照字典顺序排序的。词典文件(tis) TermCount:词典中包含的总的词数 IndexInterval:为了加快对词的查找速度,也应用类似跳跃表的结构,假设IndexInterval为4,则在词典索引(tii)文件中保存第4个,第8个,第12个词,这样可以加快在词典文件中查找词的速度。 SkipInterval...
2019-10-22 14:37:55 627
原创 CLucene中StandardAnalyzer分词流程
Clucene中StandardAnalyzer用到了职责链模式,相关代码如下:class CLUCENE_EXPORT StandardTokenizer: public Tokenizer {Token* next(Token* token);}class CLUCENE_EXPORT StandardFilter: public TokenFilter{ publi...
2019-10-22 10:48:47 333
原创 CLucene中Token类型
Token的类型enum TokenTypes { _EOF, UNKNOWN, ALPHANUM, 为字母和数字 APOSTROPHE, 标点符号 ACRONYM,首字母缩略词 COMPANY, 公司AT&T. EMAIL, HOST, NUM, CJK 中日韩文字 };...
2019-10-22 10:33:17 143
原创 CLucene中文件.fdt文件和.fdx文件格式
xxx.fdt主要存储了每个Field相应的内容, 格式如下:void DocumentsWriter::ThreadState::writeDocument() { // If we hit an exception while appending to the // stored fields or term vectors files, we have to // abor...
2019-10-21 16:41:26 722
原创 Clucene中多线程处理文档集合
DocumentsWriter::ThreadState* DocumentsWriter::getThreadState(Document* doc, Term* delTerm) { SCOPED_LOCK_MUTEX(THIS_LOCK) // First, find a thread state. If this thread already // has affini...
2019-10-21 16:37:33 205
原创 CLucene中索引生成的文件格式和内容
xxx.fnm这个文件是最重要的文件,存储了Field的名字和Field的属性。 生成时先生成此文件,加载时也现价此文件,其他文件几乎都依赖于此文件。 在这个文件中,Field之间没有做排序。同时这个文件也决定了每个Field的编号,第一个Field是0,第二个Field是1,以此类推。在其他文件中引用到Field时,都是使用Field的编号。 相关代码:void Fie...
2019-10-21 08:53:29 210
原创 clucene中segments_N文件分析
1, 作用保存段索引的元数据。注意,只是元数据,实际真正的数据是保存在Field和Term中的。2物理结构分析1,Format 索引文件版本4个字节,由于Lucene还在不断的开发,因此不同版本的Lucene有自己的特定版本号ff ff ff fc 值为-42Version 索引的版本号,8个字节,通过这个字段来判断索引的版本以及是否被更新 00 00...
2019-10-18 17:03:20 266
原创 clucene中segments.gen文件分析
1,作用随着索引的文件发生变化,比如删除索引等,会使得index中存在多个segments_N,一些older generation的索引暂时不能被删掉,例如正在提交的索引或是一些自定义策略如IndexDeletionPolicy的使用。而程序打开索引的时候,只能选择一个generation打开。Lucene每次都会选最大N对应的segments索引的打开。2, 格式segments....
2019-10-18 15:32:59 435
原创 clucene中建立索引与搜索
void IndexFiles(char* pszDataPath, char* pszIndexPath, const bool clearIndex){ IndexWriter* writer = NULL; lucene::analysis::standard::StandardAnalyzer an; writer = _CLNEW IndexWriter(ps...
2019-10-18 15:22:20 212
原创 clucene中字段Field属性解析
一, 是否存储(Stored)是:将field域中的内容存储到文档域中。存储的目的,就是为了搜索页面显示取值用的。STORE_YES比如:商品名称、商品价格、商品id、商品图片地址否:不将field域中的内容存储到文档域中。不存储,则搜索页面中没法获取该field域的值。STORE_NO比如:商品描述,由于商品描述在搜索页面中不需要显示,再加上商品描述的内容比较多,所以就不需要...
2019-10-18 11:01:44 199
原创 libevent
(1)event_base 每一个线程都有且仅有一个event_base,暂且称之为“事件管理器”吧(我自己随便起的名字),对应着一个struct event_base结构体,负责管理schedule托管给它的一系列事件(即下面要介绍的event)。当一个事件发生时,它负责在适当的时间(不一定是立即)去调用相关的回调函数。当回调函数执行完之后,再返回schedule其他事件。(2)eve...
2019-03-27 15:42:49 212
原创 二叉搜索树
先介绍下二叉搜索树 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: 首先,不要将auto_ptr对象作为STL容器的元素因为容器要求复制或者赋值后,两个对象保存相同的值两个auto_ptr不能指...
2019-02-15 11:53:32 221 1
原创 Java RMI
Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。 我们知道远程过程调用(R...
2019-02-15 11:12:48 124
原创 java动态代理
InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invoke方法。每一个动态代理类的调用处理程序都必须实现InvocationHandler接口,并且每个代理类的实例都关联到了实现该接口的动态代理类调用处理程序中,当我们通过动态代理对象调用一个方法...
2019-02-15 09:58:07 126
原创 java保留
(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径) (2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin” (3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.j...
2019-02-14 11:50:27 287
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人