YiMiTuMi

使我进步的不是谦虚,而是别人羡慕我时我的那份骄傲!

绘制图例(颜色+文本)

QT

图例 继承QWidget绘制每一个图例项,颜色 + 文本。 class LegendItem : public QWidget { public: LegendItem (const QColor& color, const QString& text, QWidget* parent = nullptr) : QWidget(parent) { m_color...

归一化

数据结构与算法

归一化 把数变为(0,1)之间的小数。 void NormalizeToMinusQneToOne(const std::vector<double>& vecIn, vector<double> &vecOut) { //先查找最大最小值 double dMin = (double)DBL_MAX; double dMax = -(doub...

构建wav音频文件

c++

构建wav文件 这套用来构建一个wav文件,主要用接受传过来的音频数据并将其保存成音频文件,为了保证保证即使接受任意大小的音频数据也能构建出一个wav文件,所以在收到一个新的音频文件时,会构建一个音频数据并保存为wav文件,后面收到的会进行追加,这样即使发送方突然停止发送或突然停止保存或者当前程序崩溃,也会记录先前的数据音频数据不会丢失。 用于保存wav文件的类,他接受一个 WAV_IN...

计算两点之间的距离

数据结构与算法

计算两点之间的距离 double CalcPointDistance(const double &startX, const double &startY, const double &endX, const double &endY) { double dx = endX - startX; double dy = endY - start...

从圆心点出发的射线上的一点,计算射线与圆的交点

数据结构与算法

从圆心点出发的射线上的一点,计算射线与圆的交点 已知圆心点、圆的半径与圆心点出发的射线上的一点,求射线与圆的交点(根据比例计算与圆的交点): typedef struct { double x, y; } Point; //计算两点间的距离 double CalcPointDistance(const double &startX, const double &s...

计算地图上一块区域的面积

数据结构与算法

计算地图上一块区域的面积 在地图上唯一不变的坐标是经纬度这里用经纬度来计算。 保存经纬度的结构体: struct EarthPos { EncsPos():L(0.0), B(0.0), H(0.0){} EncsPos(double l, double b, double h=0.0): L(l), B(b), H(h){} double L; // ...

计算一个经纬度在另一个经纬度的方位

数据结构与算法

计算一个经纬度在另一个经纬度的方位 double toRadian(double angdeg) { return angdeg / 180.0 * PI; } double toDegree(double angrad) { return angrad * 180.0 / PI; } //获取方位 double GetBear(double lat, doubl...

计算两个经纬度之间的距离

数据结构与算法

计算两个经纬度之间的距离 这里用大圆算法进行计算。 double rad(double d) { return d * PI / 180.0; } //获取两点间经纬度距离 单位米 double GetDistance(double lat,double lon ,double lat1, double lng1) { double radLat1 = rad(lat...

SVG图片操作

QT

SVG图片操作 SVG图片本质的格式是一个xml文件,里面记录了图片的大小、颜色等信息。QT中可以将SVG文件读到内存中,然后用 Painter 绘制到 Pixmap 上就可以当图片显示了,同时修改这个xml可以修改图片的颜色大小等各项数据。 QT中使用SVG跟XML需要添加: QT += svg QT += xml 读取SVG到Pixmap上 //绘制的图片大小 #define...

微秒级延时函数

c++

微秒级延时函数 正常用的延时函数精准度太低了,现在提供两种延时,一种是c++ chrono新特性来实现的,一种是windows时钟实现的。 chrono实现 #include <chrono> void timeUsC(int iTimeUs) { auto start = std::chrono::system_clock::now(); while (true) ...