canvas教程

canvas 2D炫酷动效的实现套路和需要的技术积累(3)

字号+ 作者:H5之家 来源:H5之家 2017-03-22 18:02 我要评论( )

其中, (a,b) 是圆心坐标, r 是半径大小, θ 是弧度大小,在六角星中,弧度间隔都是 1/6 弧度,因此,6个坐标点分别是: var arrPos = [ [a + r * Math.cos(0), b + r * Math.sin(0)], [a + r * Math.cos(Math.PI

其中, (a,b) 是圆心坐标, r 是半径大小, θ 是弧度大小,在六角星中,弧度间隔都是 1/6 弧度,因此,6个坐标点分别是:

var arrPos = [ [a + r * Math.cos(0), b + r * Math.sin(0)], [a + r * Math.cos(Math.PI * 2 / 3), b + r * Math.sin(Math.PI * 2 / 3)], [a + r * Math.cos(Math.PI * 2 / -3), b + r * Math.sin(Math.PI * 2 / -3)], [a + r * Math.cos(Math.PI / 3), b + r * Math.sin(Math.PI / 3)], [a + r * Math.cos(Math.PI / -3), b + r * Math.sin(Math.PI / -3)], [a + r * Math.cos(Math.PI), b + r * Math.sin(Math.PI)] ]

然后,就可以类似下面3点连线填充绘制了:

context.beginPath(); context.moveTo(arrPos[0][0], arrPos[0][1]); context.lineTo(arrPos[1][0], arrPos[1][1]); context.lineTo(arrPos[2][0], arrPos[2][1]); context.closePath(); context.fillStyle = '#fff'; context.fill(); context.beginPath(); context.moveTo(arrPos[3][0], arrPos[3][1]); context.lineTo(arrPos[4][0], arrPos[4][1]); context.lineTo(arrPos[5][0], arrPos[5][1]); context.closePath(); context.fillStyle = '#fff'; context.fill();

然后,只要确定6个场景,星星的中心坐标位置,就能将所有的星座绘制起来了。

然后,有了这些基本功,配合本文介绍的 canvas 动效实现的常见套路,就能实现最终想要的效果。

五、接在结尾的结束语

去年关于canvas效果写了篇文章“ canvas图形绘制之星空、噪点与烟雾效果 ”,演示了一些基础的canvas效果的实现,都有未压缩的源代码,帮助学习理解。

好了,就这些,感谢阅读,欢迎交流!

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址: ?p=6017

(本篇完)

作者:张鑫旭-鑫空间-鑫生活

it's my whole life!

原文地址:canvas 2D炫酷动效的实现套路和需要的技术积累, 感谢原作者分享。

←【翻译】借助SVG实现背景透明JPG图片

发表评论

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android中Canvas绘图之Shader使用图文详解(2)

    Android中Canvas绘图之Shader使用图文详解(2)

    2017-03-22 10:00

  • AR+MOOC:创造学习情境,AR 让在线自学更简单

    AR+MOOC:创造学习情境,AR 让在线自学更简单

    2017-03-21 13:00

  • HTML5游戏开发之Canvas 开发入门

    HTML5游戏开发之Canvas 开发入门

    2017-03-21 12:00

  • 微信小程序新手教程之canvas API

    微信小程序新手教程之canvas API

    2017-03-20 17:07

网友点评
a