全部手册
SIMTUTAI / DOCUMENTATION

开发手册

开发手册、使用视频,应用案例。

1. 放置1个【画布】和1个【功能键】

此处画布大小为400*400

2. 设置功能键属性

3.代码

3.1包含头文件(用于取随机数,如有另外数据来源,则不需要)

#include <iostream> // 核心头文件:C++11 随机数库 #include <random> // 用于确保随机数引擎只初始化一次(可选但推荐) #include <mutex>

3.2获取随机数函数(用于取随机数,如有另外数据来源,则不需要)

// 获取随机数函数 int getRandomNumber(int min, int max) {     // 1. 静态变量:确保随机数引擎和分布只初始化一次(避免重复播种导致随机数重复)     static std::random_device rd;  // 生成真随机种子(部分平台为伪随机,但优于time)     static std::mt19937 gen(rd()); // 梅森旋转算法引擎,速度快、分布均匀     static std::uniform_int_distribution<int> dist(min, max); // 均匀分布       // 2. 线程安全保护(如果多线程调用需加,单线程可省略)     static std::mutex mtx;     std::lock_guard<std::mutex> lock(mtx);       // 3. 生成并返回随机数     return dist(gen); }

3.3定义上一点坐标(使两线首尾相连)

// 保存上一点坐标 int lastx = getRandomNumber(0, 400); int lasty = getRandomNumber(0, 400);

3.4直线绘制代码

void Frm04::wMButton1_clk_cb(uint16_t code, LvEvent e) { /*wMButton1(画直线)的点击事件*/ int xx = getRandomNumber(0, 400);//画布的x范围内 int yy = getRandomNumber(0, 400);//画布的y范围内 int xy[4] = {lastx, lasty, xx, yy};//drawLine的第1个参数 int cnt = 2;//drawLine的第2个参数 LvDrawLineDsc dsc; //drawLine的第3个参数 dsc.color.full = 0xff0000;//颜色 dsc.width = 10;//线宽 dsc.dash_width = 10;//如果是虚线,实长部分 dsc.dash_gap = 5;//如果是虚线,空白部分 dsc.opa = 128;//线的不透明度0~255 dsc.round_start = 1;//起点是否加圆帽 0~否  1~是 dsc.round_end = 0;//终点是否加圆帽 0~否  1~是 wMCanvas1->drawLine(xy, cnt, &dsc); //更新上一点坐标 lastx = xx; lasty = yy; }
  4. 运行