就在昨天以为解决问题了,写完文章,手贱又去试了一下,不行。
因为一开始试的是旋转180度。没问题,改成了30度的旋转,就不行了。
圆不够圆。
今早,继续测试。
想差会不会是画圆的命令画不了这么圆,主要是有搞锯齿,觉得是不是因为锯齿的清晰度,导致转的时候看上去圆是椭的。
试了新方法,把画笔宽度设置成1,然后比如需要宽为24的圆,就画24个大小相邻的圆,这样,总不变形了吧。
一试,还是不行。
然后又使用路径的方式来画。
也就是弄一个圆外边的路径+圆最里面的路径,然后填充,一试,还是不行。
好吧,我认识到了,真是的旋转命令有问题。
在旋转归位之后,可能是计算中心位置的问题,导致了会有1个像素的差距,那么转起来,就会看上去像椭的一样。
没办法,只能另想办法。
一种是用前面提到的存360张图的方法。
第二种是每次转运的按当前角度来重新画奖盘。
第一种,一试。内存要700M。
这个不是重点。
重点是画360张图并保存,大概要用10秒左右的时间。
这个,太久了。
虽然我个人觉得在打开软件的时候初始化个十秒也没什么,但毕竟这是下下策。
第二种,一试。也不行。
CPU太高,达到12%。
因为我是八核的CPU。如果是单核CPU,其实也就是到100%了。
而且在转盘快停的时候,也就是每一度一度的转时,画的速度跟不上转的速度。
就导致了0.5秒才会转一下,太慢这样。
中午回去吃饭,想了下,用两种兼容的来写。
把转盘分为两个部份。
一个是不动的部分,一个旋转的部分。
不动的部分比较外边纯色的圆。这个就可以画在一张图上,保存着。
然后旋转的部分又有两个。
为了说明简单。
假设不动的部分为图层1。
动的有两个。一个是中间的奖盘,为图层2,一个是外边的12多个小圆点,为图层3。
其中,最底层的是图层2,中间是图层1,最上边是图层3。
然后把它们分开画好,存在不同的位图。
当要奖盘转运的时候。就使用旋转命令,把图层2和3都按角度旋转一下。
然后按2,1,3的顺序画出来。
虽然用旋转命令会导致看上去有一两个像素的差别,像椭圆。
但是因为静止的图层1是压在图层2的上边的。看不到图层1的周边,所以看不出它是椭的。
而还有个问题,就是图层3,明显能看出是不圆的。这个暂时也没想到什么好的办法。
先就这样吧。