Qt绘制曲线
引言
应易和仓储系统需求,使运输车在行驶过程与刹车过程中运行得平稳,下位机通过无极变速控制应运而生,而上位机的无极变速参数设置也必不可少。这就用到了Qt的绘制曲线。
Qt的图形界面很厉害,之前的项目中用到的都是Qt的一些简单的应用,通过绘制曲线才对Qt的图形有了初步的了解。原来我也可以画出美丽平滑的余弦曲线。
1 坐标转换
(1)坐标系的认识
在绘制曲线之前,先要对坐标系有个深入的认识。如果对坐标系认识模糊,那么在绘制曲线时对于点的坐标也将是一团浆糊,更谈不上画出符合一定函数的曲线了。
在无极变速参数设置中,有三个坐标系,我把它们称为:世界坐标,屏幕坐标,窗口坐标。
世界坐标就是类似s(距离)--t(时间),v(速度)--t(时间)等坐标系。我们希望的是绘制出相应的函数曲线。
窗口坐标实际上是Qt的窗口坐标,显示的都是一个一个像素,单位是像素。另外,需注意的是Qt的窗口坐标是x向右y向下生长的,与数学中经常接触到的x向右y向上不太一样。
屏幕坐标是什么呢?可以认为是在窗口坐标中抠出一部分区域,在这个区域中绘制出肉眼看到的坐标系和曲线。单位也是像素。
但是Qt是只认识窗口坐标的。如何将无极变速中的速度(或频率),距离的函数关系描述出来,就需要将相应的世界坐标转换成相应的屏幕坐标,再将相应的屏幕坐标转换成窗口坐标显示。
当然,这3个坐标系只是当前应用所需,还可以继续推广。其他应用可能需要的坐标系转换更多,可能是5个(据说码垛机中的机器视觉识别就有5个坐标系)甚至更多。
(2)坐标系的转换