QT逐步算法动画演示
Qt step by step algorithm animation demonstration
我正在创建算法的演示。我面临的问题是如何逐步制定算法的动画,因此超时或单击时,该算法会执行一个步骤并在屏幕上显示。我希望下面的算法走一步(当时在线路上指示(,因此每次称为函数时,都只能完成该算法的一步。最接近这个想法就像调试算法 - 在每个呼叫上,都将转到下一个"断点"(代码中的第一步,二,三(
(void MainWindow::animationStep()
{
// this as a whole goes all in one step - for now
QVector<QVector3D> mp = myView->points;
QVector2D p0(mp.back()); // in step one - highlight this point
mp.pop_back();
mp.pop_back();
while(!mp.empty()){
QVector2D pTemp(mp.back()); // in step two - highlight this point
mp.pop_back();
// in step three - draw this line
QGraphicsLineItem *line = myView->scene->addLine(p0.x(), p0.y(), pTemp.x(), pTemp.y(), QPen(Qt::blue, 3));
line->setZValue(-1);
// next step - continue
}
}
我有一个想法将每个部分都放在不同的功能中并根据全局计数器执行它们,但这似乎是不必要的。有一些简单的方法吗?
我看到了完成运行代码的动画显示的两种方法。
第一个选项是将代码拆分,以便以呼叫返回的步骤进行操作。这将非常丑陋。您也许可以使用某种共同的公行包来使其看起来不那么丑陋。
第二个选项是不实际运行算法并一起显示。在这种情况下,运行算法时,您将在基于时间的数据结构中记录所有步骤,然后具有单独的代码,以将数据结构播放到显示中。不利的一面是,现在显示代码无法运行算法。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 算法问题:查找从堆栈中弹出的所有序列
- 下面是排序算法O(n)吗
- KMP算法和LPS表构造的运行时间
- 为什么我的排序算法会更改数组值
- 求最大元素位置的分治算法
- 具有非整数边容量的最大流量的Dinic算法
- 到连接组件算法的问题(递归)
- STL算法函数在多个一维容器上的使用
- 读取最后一行代码算法 - c++ 时出现问题
- 使用 GLUT 使用键停止动画?
- 括号更改 O(n) 算法
- QT逐步算法动画演示