自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 一个极简的php框架

文章目录php极简框架单一入口路由控制自动加载具体实现后期扩展php极简框架使用框架进行更加高效的开发,功能完善的框架能够较大的减少开发的业务量,增强代码的可维护性。近期工作使用到php,实现了一个极简的php框架,在这里总结如下。Common:常用函数的封装Tool.phpCtrl:控制器BaseCtrl.php 基础控制器,包含基本方法Lib:核心方法Lo...

2019-06-11 21:48:54 1812

原创 3D模型体素化(Voxelization)过程实现与分析(二)

文章目录体素化方法原理展示实现过程使用Buffer着色器读取体素坐标实现代码顶点着色器片元着色器CPU读取效果图体素化方法体素化能够对模型进行简化,得到均匀的网格,在求模型的测地线,求交等过程中有较好的应用。个人理解,把体素化分为基于CPU的方法和基于GPU渲染的方法。输入是三角面片,输出体素化格子。直接使用三角形求交的方法见3D模型体素化(Voxelization)过程实现与分析(一)...

2018-12-25 13:24:59 15274 13

原创 OpenGL渲染框架搭建

文章目录OpenGL渲染框架搭建OpenGL场景控制初始化全局变量键盘控制鼠标控制shader控制camera控制模型导入虚函数接口和模型基类模型导入渲染流程OpenGL渲染框架搭建OpenGL场景控制初始化使用的glfw和glad。glad需要将glad.c引入到工程中。在使用glfw建立窗口后,使用glad获得OpenGL函数地址,可以看到的是一些宏。这样在上下文中就可以使用Open...

2018-12-24 22:02:47 1171

原创 Leetcode 23. Merge k Sorted Lists

Leetcode 23. Merge k Sorted Lists题目题目解析代码链表类题目总结Leetcode 23. Merge k Sorted Lists题目Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity...

2018-08-24 19:19:30 201

原创 Leetcode 126. Word Ladder II

126. Word Ladder II题目题目解析基于广度优先的改进方法126. Word Ladder II题目Given two words (beginWord and endWord), and a dictionary’s word list, find all shortest transformation sequence(s) from begin...

2018-08-23 11:29:44 492

原创 基于python的简单HTTP服务器实现(三)

HTTP服务器实现线程池python中的线程池基于threadpool基于futures具体实现Queue线程池实现HTTP服务器实现在基于python的简单HTTP服务器实现(二)中,我们实现了支持session的服务器,实现了基本功能。当考虑服务器在接受多个请求时,如果对每一个请求都开辟一个线程,那么开销是非常巨大的,而且线程的数量无法控制,因此想...

2018-08-01 19:24:14 3098 3

原创 C/C++中内存分配与STL中的空间配置

C/C++中内存分配与STL中的空间配置C语言中的内存分配C++中的内存分配new/deletenew/delete的多种使用memory头文件中空间配置器一级空间配置器二级空间配置器SimpleAllocate 最近在看侯捷的《STL源码解析》,按照里面的思路写了一个迷你的STL,由于STL中的内存分配和空间配置较为复杂,在这里总结一下。...

2018-07-23 20:18:58 1584

原创 Python中XML的读写总结

基于DOM写入读取基于ElementTree写入读取 近期项目有用到python处理较多的xml数据,在这里总结下python中xml的读写方法。在python中,主要有三种方法读写xml:基于DOM,基于ELementTree,基于SAX,这里主要总结前两种方式。基于DOM导入: import xml.dom.minidom as minidom...

2018-07-17 22:52:14 34478 4

原创 基于python的简单HTTP服务器实现(二)

HTTP服务器实现响应头解析请求SESSION的实现SESSION与COOKIE机制思考 在基于python的简单HTTP服务器实现(一) 中,我们实现了一个基础的HTTP服务器,这里的服务器只有简单的响应静态请求,以及最基础的动态请求功能,在这里对原来的工程进行完善。首先规范化响应头,规范区分静态和动态请求,并且增加了session部分,能够支持登陆,识别用...

2018-07-10 20:37:00 3231

原创 PyQt5中异步刷新UI和Python中的多线程总结

PyQtPyqt简介Python中的多线程实现方式一实现方式二信号机制UI刷新PyQtPyqt简介PyQt是Qt的python接口,PyQt的文档较少,但接口和函数可以完全参照Qt,继承了Qt中大量的控件以及信号机制,十分方便。以下简介一个基本的PyQt程序。 - 需要导入的类主要来自三个包 - from PyQt5.QtWidget...

2018-07-09 21:05:42 31587 7

原创 基于python的简单HTTP服务器实现(一)

HTTP协议请求报文请求头部字段解析响应报文响应头部字段解析响应状态码HTTP服务器实现- TCP通信部分 http协议大概是我们接触的最多的协议了,每打开一个网页,浏览器和服务器之间,使用的就是HTTP协议。HTTP协议属于应用层协议,下一层是运输层。这段时间,学习了一些相关的知识,因为对C++的多线程和网络编程不是很熟悉,先用python实现了...

2018-06-29 22:55:51 51375 4

原创 安卓开发环境搭建和手动打包总结

开发环境安装Android studioEclipseJAVA安装Android SDK安装Eclipse安装安卓工程生成ASEclipse命令行生成目录解析手动打包过程 最近项目要求要用安卓,并且需要用手动打包,学习了下安卓的基础开发以及手动打包的过程,遇到的坑比较多,在此总结下。开发环境安装Android studio目前...

2018-06-26 20:29:05 2144

转载 CSDN-Markdown编辑器写博客

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-06-26 20:07:45 159

原创 图形学中常用计算几何总结

常见几何计算基础计算向量点乘向量叉乘点和线之间计算点是否在直线上点是否在线段上点是否在三角形内部点到直线的距离直线之间的距离点到线段的距离点到三角形距离 在做毕设过程中,进行三角网格处理的时候经常会遇到例如点与线段最短距离,点与三角形最短距离等计算,在这里汇总下,如遇到新的会不断更新。常见几何计算基础计算向量点乘向量点乘:...

2018-05-18 13:10:49 1442

原创 PCA主成分分析的MATLAB和Eigen实现以及应用

PCA实现和应用PCA理论计算协方差矩阵PCA过程MATLAB实现求协方差矩阵PCA过程Eigen实现实现效果图 目前在项目中需要对模型的位置进行矫正,想到了使用主成分分析,提取主方向,将模型方向进行变换得到正确的方向。以下对PCA过程首先在matlab中进行实现,然后在C++矩阵库Eigen中实现,总体较为简单。PCA实现和应用PCA理论...

2018-05-15 11:27:06 2766

原创 3D模型体素化(Voxelization)过程实现与分析(一)

体素化方法基于CPU的体素化方法三角面片距离方法三角面片插值点总结基于渲染的体素化方法体素化方法体素化能够对模型进行简化,得到均匀的网格,在求模型的测地线,求交等过程中有较好的应用。个人理解,把体素化分为基于CPU的方法和基于GPU渲染的方法。输入是三角面片,输出体素化格子。基于CPU的体素化方法体素化无非是对模型所在空间进行划分成网格,并决定...

2018-05-09 23:42:53 41154 11

原创 纹理合成 Texture Synthesis 算法的C++实现

理论生成初始块计算重叠块相似度调整边缘实现生成初始块生成重叠块调整边缘实现效果图 最近做毕设,需要用到纹理合成Texture Synthesis 的知识,在看了一些论文后,开始使用MATLAB进行实现,但由于本人对MATLAB掌握一般,实现过程出现了各种各样的问题,于是改用C++重新编写,效果较好,现总结如下。理论纹理合成的只是主要来源于一...

2018-05-06 10:44:43 6427 2

原创 OpenGL工程重构和obj文件loader编写

obj文件loader编写重构OpenGL工程 最近做毕设,将代码重新整理一遍,将原来的OpenGL框架抽象了一遍,重构了一下,在此总结一下。同时,仿照assimp重写了一个obj文件的loader。obj文件loader编写obj文件格式解析见之前的博客,pcd,obj,mtl文件格式解析。obj主要包含obj文件和材质文件mtl。其中模型的结构是按照组来划分...

2018-04-28 23:35:20 722 1

原创 OpenGL渲染管线以及二维到三维坐标之间的相互变换

渲染管线坐标变换三维坐标到二维坐标的变换二维坐标到三维坐标的变换 近期项目需要,了解了OpenGL的管线以及二维和三维坐标之间的变换,在此总结一下渲染管线 OpenGL渲染管线是整个OpenGL学习过程中最基础最重要的东西,虽然写了有一段时间OpenGL,但大部分时间都是在写片段着色器和顶点着色器,并没有对整体的管线进行总结认识,在这里总结一下。注:...

2018-04-23 16:54:03 2540 2

原创 QT中OpenGL开发起步

OpenGL中环境搭建 近期由于需要做一个GUI展示的OpenGL程序,因此想到用QT来做界面,需要在QT中写OpenGL,配完环境后,在这里总计一下。QT基础总体看来,QT的版本较为混乱,有时候傻傻弄不清楚,QT dialog/widget/mainwindow。又需要有界面,又要有pro文件,一圈下来,加上网上教程版本混乱,已经凌乱了。后来在同学帮助下,看了一些博客教程,综合...

2018-04-12 16:13:48 14624 10

原创 Leetcode 97. Interleaving String

Interleaving String题目题目解析备忘录方法97. Interleaving String题目Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example, Given: s1 = "aabcc", s2 = "dbbca"

2018-01-30 19:02:25 212

原创 Leetcode 78&90. Subsets I & II 【排列与组合的生成总结】

Subsets题目解法一解法二Subsets II题目题目解析解法一解法二排列生成和组合生成分析78. SubsetsGiven a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not

2018-01-28 14:40:27 218

原创 Leetcode 139&140. Word Break I & II

Word Break题目题目解析代码Word Break II题目题目解析想法一想法二想法三139. Word Break题目Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be

2018-01-25 21:16:49 205

原创 Leetcode 131&132. Palindrome Partitioning I & II

Palindrome Partitioning题目题目解析代码Palindrome Partitioning II题目题目解析想法一想法二想法三131. Palindrome Partitioning题目Given a string s, partition s such that every substring of the partition

2018-01-25 18:58:50 212

转载 哈希表的一个C语言实现

HashTable代码结构头文件函数定义测试HashTable 哈希表的类型是对一个string进行散列。本文实现的哈希表使用的是开散列的办法,首先是一个指针数组,数组第一个位置中保存着哈希表的大小。首先对string散列获得一个整数值,然后根据哈希表的大小计算所属的槽位,然后再该槽位的链表上进行查找,如果找到则更新哈希值,如果未找到则在尾端插入。 – 本

2018-01-20 16:03:39 8953 2

原创 傅里叶变换及其实现(MATLAB)

傅立叶变换傅立叶变换是一种常见的分析方法,傅立叶变换将满足一定条件的函数表示为一些函数的加权和(或者积分)。可以分为四个类别: 1. 非周期连续性信号 对应于傅里叶变换,频域连续非周期 2. 周期性连续性信号 对应于傅立叶级数,频域离散非周期 3. 非周期离散信号 对应于DTFT(离散时间傅立叶变换),频域连续周期 4. 周期性离散信号 对应于D

2018-01-09 17:44:16 246806 13

转载 3dmax和VRay灯光

max灯光vray灯光VR灯光vray-ies灯vray太阳vray环境灯区别最近在做对模型进行光源布置和渲染,使用传统的max光源,在多个光源的情况下,由于经验不足,很难调到较好的效果,因此学习了vray的光源。在此将教程的内容整理如下,原地址是:http://www.3dmax8.com/3dmax/xuanran/9/max灯光主要分为两个类别: - 标准灯光 1.

2017-12-29 14:08:10 7355

原创 异步Socket通信编程的C#实现(2)

客户端的GUI实现长度校验编码长度校验实现效果 在第一篇中,已经实现了异步通信的控制台应用程序。服务端能够连接多个客户端并发送消息。在这一篇中,将实现两个功能: 1. 实现GUI的客户端,能够与服务器进行双向通信 2. 实现socket通信的长度校验客户端的GUI实现在控制台程序中,客户端不能方便的发送消息给服务器,使用C#编写用户界面,实现通信和打印消息。 在GUI的sock

2017-12-23 23:12:12 316

原创 异步Socket通信编程的C#实现(1)

异步Socket通信编程的C实现Socket通信介绍异步编程代码解析服务端发送端程序效果截图异步Socket通信编程的C#实现Socket通信介绍socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。一个socket接口包括ip和对应的端口,建立连接的过程如下: 1. 服务器监听:是服务器端套接字并不

2017-12-23 22:36:35 491

原创 高斯混合模型的C++实现

高斯混合模型的C实现原理过程代码实现高斯混合模型的C++实现原理GMM将数据的分布通过多个高斯模型进行拟合。GMM是一种聚类算法,每个component就是一个聚类中心。高斯混合模型可以得到每个数据属于每个模型的概率,是一种软聚类算法。这是来自《统计学习方法》中的定义:过程高斯混合模型使用EM算法估计模型参数。 1. 初始化模型的个数和每个高斯模型的参数,设定迭代结束条件(迭代次数,误差阈值

2017-12-13 16:54:07 2412 2

原创 51 nod: 1298 圆与三角形

题目InputOutputInput示例Output示例题解代码题目给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交。相交输出”Yes”,否则输出”No”。(三角形的面积大于0)。 Input第1行:一个数T,表示输入的测试数量(1 <= T <= 10000),之后每4行用来描述一组测试数据。 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R

2017-12-05 19:37:54 269

原创 51 nod: 1459 迷宫游戏

题目InputOutputInput示例Output示例题解代码题目你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房

2017-12-03 22:51:06 299

原创 Leetcode 212. Word Search II

212. Word Search II题目说明Given a 2D board and a list of words from the dictionary, find all words in the board.Each word must be constructed from letters of sequentially adjacent cell, where “adjacent” c

2017-12-01 21:51:59 249

原创 Max Script 入门教程

启用max脚本数据类型基本使用基本数学操作建模操作语法函数导入导出应用实例总结 MAXscript是3ds Max内置脚本语言,Max2.0及以后加入的功能。也能使用在与3ds Max相关的产品中如Autodesk VIZ,character studio,Plasma和GMax;脚本可使用于建模,动画,材质,渲染等等。它是专门为3D Studio Max设计的。 – 摘

2017-11-17 11:32:23 4735 2

原创 KD树的C++实现

理论介绍 kd树(K-dimension tree)是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是是一种二叉树,表示对k维空间的一个划分,构造kd树相当于不断地用垂直于坐标轴的超平面将K维空间切分,构成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。kd树的算法步骤  kd树可

2017-10-06 18:10:19 6147 2

转载 Markdown语法总结

Markdown语法总结 摘自Markdown语法帮助,留着备用。快捷键加粗 Ctrl + B斜体 Ctrl + I引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + Y标题在文字

2017-06-27 15:19:52 335

转载 贝叶斯决策理论和概率密度估计方法

模式识别基础方法小结 这学期学习了《模式识别》这门课程,刚刚考完试,趁着考试复习的机会把模式识别的基础方法总结了一下了,这一篇的主要内容是转自Angel_Yuaner大神的博客,提供原链接整理如下。贝叶斯决策理论贝叶斯决策有两个基本要求各类别总体的概率分布是已知的待决策分类的类别数是一定的贝叶斯决策时是从样本空间到决策空间的一个映射,贝叶斯决策是所有识别方法的一个基准。贝叶斯决策论

2017-06-27 15:06:47 2041

原创 ubuntu下ftp服务器的配置

ubuntu下ftp服务器的配置本文介绍ubuntu下ftp服务器的配置,内容参考网络及个人实践。安装我使用的是ubuntu的安装软件命令即可完成安装: apt-get install vsftpd配置新建用户建议创建一个ftp用户专门用于ftp服务器登录管理。命令如下: 新建用户 useradd -d /home/uftp -s /bin/bash uftp 这里创建了一个linux用户并

2017-06-23 22:15:54 438

原创 python 模块安装

python模块安装本文介绍windows环境下的python模块安装方式,内容参考网络及平时总结。使用模块安装工具安装工具包括: 1. pip 2. easy_install 这是最简单的安装方式,需要提前安装好pip或者easy_install,可以在安装python时勾选安装或者自己安装。 安装目录: D:\Program Files\Python\Lib\site-packages,

2017-06-16 11:54:30 814

原创 pcd,obj,mtl文件格式解析

pcd,obj,mtl文件格式解析pcdobjmtl文件格式解析pcd文件解析格式说明例子obj文件解析格式说明例子mtl文件解析格式说明例子pcd文件解析 PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图

2017-06-14 15:26:33 4570 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除