姜茶.Blog

这是一个正在成长的程序员

Ice Breaker

敲冰块

敲冰块 利用随机数来实现一个掷骰子的功能 点击跳转

OpenMesh

半边数据结构汇总

半边数据结构 半边数据结构具有如下特点: 每个顶点对应一个出边。例如,一个半边从顶点1出发; 每个面对应一个半边为它的边界,例如面2; 每个半边指向的对象如下: 指向下一个顶点3; 指向一个面4; 指向下一边半边5; 指向反向的半边6; 指向上一个半边7(可选) OpenMesh ...

CGAL

三维周期网格

Introduction 一个周期的网格生成过程由如下两个函数完成: template <class C3T3, class PeriodicMeshDomain, class MeshCriteria> C3T3 make_periodic_3_mesh_3(const PeriodicMeshDomain& domain, ...

Modern C++

现代C++ C++11 C++14

Introduction 最近听闻了一个段子 同样是C++工程师,有的人写的是 C with object,有的人写的是 C++ 98,fashion一点儿的写 C++ 11,而有些弱鸡写的是 谭++。 (日常黑谭浩强,虽然我不太了解有多少黑点。。。 左值右值 C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值。通俗的左值的定义就是非临时对象,那些可以在多条语...

瞎搞搞-数字水印(待填坑)

在自己的摄影作品上添加数字水印

前言 虽然我还是个技术糟糕的咸鱼摄影,但也该考虑自己牛逼了以后的事,不如趁早做个个人专属水印(臭不要脸)。 所以这里写个博客给自己立个FLAG,鼓励自己早日把这个FLAG拆掉! 目标 在设想如何实现这个专属水印的时候,我想到了前些时候火热的数字水印,不如借这个机会花几天时间自己实现一个属于自己的添加水印工具。 初期考虑功能: 直接水印:(设置一个规则json文件,可以...

介绍下Github工程中常见的特殊文件

Github工程中常见的特殊文件

新的计算机从业者很多会奇怪为什么很多github工程中都会有些相同命名的文件,这里为大家简要介绍其中的几个。 README.md 如上图,通常我们打开一个Github时都会在其下方看到关于工程的介绍说明,readme的意思“读我”也是希望访问工程的读者首先读一下这里的内容。通常包括工程的介绍、工程的效果展示、工程的编译说明、如何为此工程做出贡献、以及工程文档等相关内容。有的时候因为内容...

C++ 智能指针

内存泄露的惨痛经历

引言 最近在敲一个C++项目的时候,出现了令人丧失自我的严重的内存泄露,如下图所示: 经过调试后,最终发现导致内存泄漏的地点是一个频繁调用的函数中,有一定概率使四个指针没有释放,每个指针大小应该与内存宽度一致,也就是每个指针为 64位 8字节,四个指针就是32字节。而小小的32字节的泄露积蓄的能量可以达到数十G空间直至吃掉所有内存。 本文介绍一种不借助其他检测工具的情况下如何对内存...

人脸识别

基于 Qt、Dlib 的实现

简介 人脸识别技术是一种生物识别技术,可以用来确认用户身份。人脸识别技术相比于传统的身份识别技术有很大的优势,主要体现在方便性上。传统的身份认证方式诸如:密码、PIN码、射频卡片、口令、指纹等,需要用户记住复杂密码或者携带身份认证钥匙。而密码、卡片均存在丢失泄露的风险,相比于人脸识别,交互性于安全性都不够高。人脸识别可以使用摄像头远距离非接触识别,相比于指纹免去了将手指按在识别区域的操作,可...

Qt 解析命令行

Qt 解析命令行参数,类似 argparse 工具

Qt解析命令行 我们使用 Python 写个简单的脚本很方便,直接 import argparse 就能很容易的实现命令行参数解析的功能,还可以通过 --help 来输出帮助功能,而 Qt5 页提供了这方面的支持。 Qt 从 Qt5.2之后提供了 QCommandLineParser 和 QCommandLineOption 两个类来负责这个功能。 QCoreApplication 提供...

然并卵系列

windows 下使用CMAKE-gui来编译第三方库的源代码

很多 linux 和 windows 平台通用的第三方库喜欢使用 CMAKE 来管理整个工程文件,当我们需要编译安装该库时,在 linux 上往往非常简单。 ./configure make make install 而在 windows 下配置该库难度就比较麻烦,一般使用 cmake-gui 进行配置,生成对应开发环境的工程(比如VS2010、V...