为什么有这个想法呢?一个不小心的意外,很久以前,我写了个凸壳算法,想起了我学习这个算法时的过程,发现如果能有动画的演示,也就是外面的壳怎么形成的,因为在形成的过程中会有选择,将整个过程放慢,绝对看得清清楚楚。
萌生了这个想法后,我发现要想达到我预想的那种效果还不是一件简单的事情,如果将事情简单点,可以现将外壳的每条线段给求出来,然后在利用定时效果,比如每隔1s画一条线。其实如果熟悉凸壳算法的应该知道,这样来演示估计对于初学此算法的完全就是白搭。于是,我极力演示处整个过程,也就是将每次选择都演示出来,这样初学者在看的时候会非常的清楚算法的整个流程。
至于选择多线程,我的初想是,设计3个类来处理,一个为图形界面类,负责数据存储、图形绘制等;两个线程类,一个负责算法,一个负责检查是否可以绘制然后通知图形界面类进行相应的绘制操作。当然,这里面肯定得涉及信号量类和互斥类,对数据部分进行同步。
为了做此程序,必须具备,凸壳算法、Qt编程、多线程编程等经验,其实这些对我来说实战次数非常少,通过这次的程序希望能得到很大改善。
我打算在9号之前完成,因为10号我就回家了,电脑放在寝室。今天的内容还慢艰辛的,把设计文档写好就ok!