无语博客

花儿死翘翘


您的位置: 首页 无语分享 正文

搅了一天,终了终了,还是有收获的

最近一直在弄转盘抽奖的。一开始的时候没注意,也看不出什么。等到昨天弄转动的时候才发现问题。

转盘竟然不圆。

只差1个像素,静止的时候是看不出的。

但是一动起来,明显的可能看到整个转盘在左右摆动,简直了~

最开始以为是起始画的坐标。比如我以为是从1开始的,但它是从0开始的。

然后把所有起始坐标都+1。

再试,依然。

放着先不管,先弄转动速度。

有两种方法。一直是提前把转动的图给存下来,然后当要转的时候,再从内存里把图给画出来。

这里做了下测试,存了36张图,也就是每转10度存一张。

然后测试。

如果使用这种存图的方法。软件运行的时候。内存需要40M左右,CPU消耗在2%~3%的样子。

如果是转动的时候直接用GDI+来旋转,然后画出来。CPU在8%左右,内存在4M。

想了一下,内存估计大家都不缺了,那就节省CPU吧。

弄好了一试,不行~因为10度太大了。

当要转动快的时候。每0.01秒转10度或者转30度都没问题。

但是当转盘要停止的时候,10度10度的跳是明显会卡顿的。

如果存360张图呢?一算,那内存大概需要400M了。

一台电脑8G,一下就用了1/16的样子。如果是4G内存的电脑,就1/10,如果是2G,呃,现在还有2G的吗?那就是1/5。

CPU的话,我的是3.6G的。8%是0.288G。如果电脑CPU是2G的,消耗在14%的样子,好像要更能接受些。

又决定还是不用存图吧。

然后又回到了原来的问题,圆不圆。

放大了像素看,就是一个像素的问题。

搞啊搞,搞了一下午,都要吐了,终于在写这篇文章前,找到问题了。

不是起始画的坐标问题,而是我计算宽高的问题。

在计算的宽高上,再-1,就可以了。

回头想想。前面的时候就发现了圆的右边比左边更靠边1PX,怎么就没想到要把宽高减个1呢?

还到处去查资料,GDI+画圆不圆怎么办?又怀疑是GDI+模块的原因,又去看代码,测试~~~~

唉,人傻不能怪社会……

本文地址:https://www.wuyublog.com/wuyufenxiang/458.html,来源于【无语博客】,欢迎转载,转载请注明出处。
  • 评论列表:
发表评论: