C++
文章平均质量分 59
蚕与禅
愚人一个,求慢,求少。懂一点儿编程,博客主要是为了给自己扫盲,如果能恰巧帮助到陌生的朋友,是我的荣幸!
展开
-
c++线程同步案例分析
开发实时仿真软件时,一般留有实时输入数据接口,根据仿真步长接收实时数据。由于仿真软件还要进行业务处理,如果把业务处理流程直接放在实时输入接口内部,那么相当于把业务挂在了调用方的线程上,很容易把唯一的线程卡住,谈何实时仿真?所以,这里应该给业务运转单独起一个线程,输入接口只负责接收数据,业务线程专门负责内部计算,两个线程共同操作同一缓存,即线程同步。原创 2024-04-28 17:19:16 · 237 阅读 · 0 评论 -
C++度与弧度互相转换——记一个隐晦的BUG
在C++代码中,可以通过定义宏来方便快捷地进行度与弧度的互相转换。然而,这看似平常的操作,如果疏忽,可能会引入一些比较隐晦的BUG,只有在特定情况下才会被触发。原创 2024-04-10 14:55:12 · 274 阅读 · 1 评论 -
C++生成球体内的三维随机数
在航空航天目标模拟,或者3D游戏中,某物体运动的轨迹往往存在一定误差,究其根本是探测设备(比如雷达和望远镜)只能无限逼近真实值,而永远不能测量到绝对的真实值。一维和二维的随机误差生成比较容易,三维随机误差的生成可以利用极坐标生成在一个球体内均匀分布的三维点,再转换为三维直角坐标。原创 2024-04-01 17:34:33 · 176 阅读 · 0 评论 -
C++线性代数库Eigen简明教程
线性代数在3D游戏建模、深度学习、机器人工程、视频图像处理、航空航天等领域都有着举足轻重的位置。在使用C++编程时,如果从零编写矩阵的乘法、求逆、求特征值等运算,将会是件很麻烦的事情。而且,不管是从计算正确性,还是从效率方面都很难得到保障。因此,成熟稳定的线性代数库显得尤为重要。Eigen是线性代数的C++模板库,它包含矩阵、向量、四元数、数值求解器和相关算法,其拥有良好的稳定性和计算效率,是我们搭建C++工程研究算法的必备利器。原创 2023-12-02 16:35:39 · 1287 阅读 · 0 评论 -
静态库与动态库从概念到实操——基于VS2019平台
万丈高楼平地起,大型软件工程地构建,离不开”库“。什么是库?库能干啥?怎么生成库?怎样调用库?如何鉴别库?这一系列疑惑,对于初次接触软件工程的人都显得难以捉摸,或者,似乎懂得一些浅显的概念,真正上手实践却发现无从下爪。因此,本文基于VS2019平台,从概念到理解,到实操,再到注意事项,进行详细地探讨。原创 2023-11-17 15:48:39 · 255 阅读 · 1 评论 -
C/C++对结构体的排序——以二维坐标点排序为例
排序是一种很常用的算法,传统冒泡排序和基于递归的快速排序都很经典。一般理解的排序就是对单一数值的排序,比如对年龄的排序和对身高的排序。然而,实际业务应用中的排序往往是复杂的,可能是二维或者三维空间点的排序,甚至是一个抽象复杂的结构体或者类对象的排序。但是,万变不离其宗,只要我们明确了排序的准则,不管多复杂的结构体都可以通过系统自带的sort函数来处理。原创 2023-09-12 17:21:24 · 348 阅读 · 0 评论 -
如何把float数据存入单字节数组进行数据传输?
在上位机与下位机进行通讯的过程中,需要把float类型的数据存入单字节数据流中,形成报文,然后下位机再对报文进行解析,将单字节数据流转换为float型。char类型是单字节,很容易存入单字节数组,但float占4个字节,如何去存?原创 2023-08-30 14:55:03 · 372 阅读 · 1 评论 -
C/C++回调函数介绍
程序设计时通常是上级调用下级,比如一个类可以调用它作为成员变量的对象里面的接口,但是如果反过来下级调用上级就不是这么容易了。此时,回调函数的作用就体现出来了,实际应用中,经常把UI的函数指针通过接口存入下级业务类里面,然后业务执行到特定触发点时,调用该函数指针,UI上同步显示数据。原创 2023-08-29 16:49:29 · 50 阅读 · 1 评论 -
C++调用C#
若想在C++搭建的工程里调用C#编译的动态库,则需要对C++工程进行简单配置,并且操作符也要做出一些特定变化。这里以VS2019平台下搭建的C++工程为例,调用C#编译的卫星轨道计算动态库,最终通过卫星两行根数成功计算出一段时间的卫星位置信息。原创 2023-08-28 10:28:16 · 1093 阅读 · 3 评论