canvas中Math.random()与性能优化

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

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

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

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

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

阅读 4.3k
1 个回答

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

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

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

https://developer.mozilla.org...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题