canvas中Math.random()与性能优化 财富值57

2016-10-17 21:24发布

在 canvas 画布上随机生成多个封闭图形。封闭图形的位置、大小、旋转角度都是随机的。

我用了Math.random()的方法。比如旋转角度,我写的是 var rot = 360 * Math.random()

但 Math.random() 生成的随机数精度可能很大,像0.7402760791934122

综合考虑,应该把随机生成的有效数字很多的 坐标、数量、角度等变量作为参数传给图形绘制函数呢,

还是直接生成整形的变量如var rot = Math.round(360 * Math.random())性能更好呢?

4条回答
.2 - 这个人很懒,什么都没留下
1楼 · 2016-10-17 21:14.采纳回答

当你画一个没有整数坐标点的对象时会发生子像素渲染。

mishen - whatsns产品经理
2楼-- · 2016-10-17 21:15

浏览器为了达到抗锯齿的效果会做额外的运算。为了避免这种情况,请保证在你调用drawImage()函数时,用Math.floor()函数对所有的坐标点取整。

避免浮点数的坐标点,用整数取而代之

一周热门 更多>