个人介绍
多年从事c++开发,经验丰富
熟悉qt开发,qgraphicsview框架
熟练使用opengl开发,有制作绘图引擎,游戏引擎经验
从事触控绘制相关功能开发,有独立完成触控笔模块功能
擅长实现高效的数据结构算法等
兴趣:数学,编程,算法等
工作经历
2019-08-05 -2020-04-30软视视频软件软件工程师
PDF导出: Pdf导入导出功能TaskOwner,分析了pdf数据格式,结合官方文档与Qt源码,实现了将图片转成pdf的功能,转换方法跨平台,只依赖纯C++,不依赖任何三方库; 矢量保存 利用深度优先遍历的方法结合tinyxml2实现了导出导入矢量图的能力,并复用之前的代码; 渲染层代码重构 仔细研究了现代Opengl的渲染管线,掌握了基本绘制方法以及渲染原理,渲染流程;在windows,mac,ios(OpenglES),linux上都成功把Opengl和对应的窗口架构结合,并成功调用;并据此完成了Linux端(Qt)下重构渲染层;
2017-05-08 -2019-07-01海康威视数字技术股份有限公司高级软件工程师
完成了本地白板功能,解决了多个技术难题,包括但不限于: 抗锯齿优化 书写延时优化 创新的利用利用Qt的QImage做2次缓存实现; 高精度擦除效果 高精度擦除算法的交点计算部分阅读理解并摘录了部分Qt源码,核心代码自己用纯c++实现,基于拓扑学的一些原理,设计思想借鉴了Qt的碰撞检测算法;在算法实现过程中利用matlab作图可视化的方法分析算法的一些问题,修改bug; 毛笔笔锋效果实现 完全创新实现,从0到1; 可扩展的场景框架 场景框架借助Qt的QGraphicsView框架实现;探索并理解了Qt的QTransform的原理,以及各个坐标系之间的变换关系,顺带发现了一个Qt源码的一个bug以及Qt帮助文档的一个小错误。 完成了共享白板功能,解决了若干技术难题,包括但不限于: 多方数据同步问题; 第三方上线的数据同步问题; 共享白板服务以nginx做代理,数据库基于postgres,同时多服务白板同步走mqtt协议;共享白板服务器利用c++结合QtCore实现,数据序列化利用了nlohman::json;白板纯逻辑代码是c++编写的;在这个过程中顺带用boost::asio开发了一个
2013-05-01 -2017-05-01中国电子科技集团公司第三十八研究所总体
从0到有完成了第一代情报处理软件; 初始原型基于C#结合WPF框架实现,之后用c++结合MFC,BCG实现工程化; 仿真了所有测试数据,以及对完成了对29所提供的机载数据的解析; 用c++结合mfc自己编写了小型仿真软件,输入一些配置参数,可以生成pdw数据文件,rdw数据文件,格式与某类真实数据格式保持一致;同时支持以表格形式展示仿真结果数据, 并且该软件可以直接加载真实数据并展示。 完成了无源定位算法,优于29所(信息对抗国内龙头)的定位算法; 无源定位算法用matlab仿真,做一些测试,绘制图形显示误差椭圆等工作,算法满意之后,用c++工程实现,实现过程中结合了Intel的mkl,armadillo,eigen等矩阵库; 多次出差联调,以及用户培训,保障项目正常发布; 除了给用户培训软件之外,还会解决一些现场的软件问题,bug之类,通常是在现场直接解决完毕再回去,否则不回去。
教育经历
2010-09-01 - 2013-04-01南京理工大学信息对抗硕士
从事电子与通信工程专业,擅长数学相关,线性代数满分,矩阵分析95,数字信号处理95
技能
taskflow是一种多线程线程池框架;可以将逻辑封装为任务,并抛到线程池处理。 其特点在于支持添加任务之间的依赖关系,只要依赖关系组成的图是不包含循环依赖的。 就可以保证依赖者在被依赖者之前被执行
用c++ 实现了游戏引擎的ecs框架,采用静态版本,编译期添加对象组件。 ecs为组件,实体,系统; 避免了传统继承派生带来的类膨胀问题,以及逻辑耦合问题。 系统借用了taskflow,支持多线程并行处理。数据管理采用chunk, 同时会自动移动组件 位置,提高了cpu缓存命中。整体实现了ecs基础功能 【注:我的作品图片传不上去,就随便传了2张图,直接去链接看源码即可】