Html5制作奥运五环
来源:互联网 发布:剑灵灵族正太捏脸数据 编辑:程序博客网 时间:2024/04/29 16:28
使用html5的Canvas制作一个一模一样的奥运五环:
第一步:画圆
在一切实验之前,要先理解Canvas中的坐标系统,假设一个宽是300,高是150的Canvas标签,它内部的坐标变化为,从左上角向下,向右越来越大。
Canvas画圆的语法为:
arc(x,y,radius,startAngle,endAngle,counterclockwise)
利用以上方法,直接在Canvas中画五个圆环。
<canvas id="myCanvas" style="border: 1px solid #c3c3c3; width: 400px; height: 200px;"> 你的浏览器不支持canvas </canvas>
编写脚本如下:
<script type="text/javascript"> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.beginPath(); ctx.arc(70, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.beginPath(); ctx.arc(160, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.beginPath(); ctx.arc(250, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.beginPath(); ctx.arc(110, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.beginPath(); ctx.arc(200, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); </script>
运行效果如下所示:
可以看到和标准的奥运标志相比,圆环宽度不够,而且不是彩色的,所以要设置Canvas的属性来绘制更加逼真的圆环。
<script type="text/javascript"> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.lineWidth = 5; ctx.strokeStyle = "#163B62"; ctx.beginPath(); ctx.arc(70, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#000000"; ctx.beginPath(); ctx.arc(160, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#BF0628"; ctx.beginPath(); ctx.arc(250, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#EBC41F"; ctx.beginPath(); ctx.arc(110, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#198E4A"; ctx.beginPath(); ctx.arc(200, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); </script>
运行效果如下:
现在基本上已经和奥运标志差不多了,可是细心的你会发现,后画的圆会覆盖在先画的圆形上面,这样就失去了环环相扣的感觉,那么如何环环相扣呢?现在将进行下一步:画弧。
第二步:画弧
可以通过画弧来重新覆盖被覆盖的部分,以实现环环相扣的视觉效果。
在画弧之前,先回到Canvas的arc方法。
arc(x,y,radius,startAngle,endAngle,counterclockwise)
以上代码中各参数的意义如下:
通过以下代码实现相关圆弧的覆盖:
ctx.strokeStyle = "#163B62"; ctx.beginPath(); ctx.arc(70, 70, 40, Math.PI * 1.9, Math.PI * 2.1, false); ctx.stroke(); ctx.strokeStyle = "#000000"; ctx.beginPath(); ctx.arc(160, 70, 40, Math.PI * 0.9, Math.PI * 2.1, false); ctx.stroke(); ctx.strokeStyle = "#BF0628"; ctx.beginPath(); ctx.arc(250, 70, 40, Math.PI * 0.9, Math.PI * 1.1, false); ctx.stroke();
合并以上代码,就得到完整的代码如下:
<script type="text/javascript"> var c = document.getElementById("myCanvas2"); var ctx = c.getContext("2d"); ctx.lineWidth = 5; ctx.strokeStyle = "#163B62"; ctx.beginPath(); ctx.arc(70, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#000000"; ctx.beginPath(); ctx.arc(160, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#BF0628"; ctx.beginPath(); ctx.arc(250, 70, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#EBC41F"; ctx.beginPath(); ctx.arc(110, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#198E4A"; ctx.beginPath(); ctx.arc(200, 110, 40, 0, Math.PI * 2, false); ctx.stroke(); ctx.strokeStyle = "#163B62"; ctx.beginPath(); ctx.arc(70, 70, 40, Math.PI * 1.9, Math.PI * 2.1, false); ctx.stroke(); ctx.strokeStyle = "#000000"; ctx.beginPath(); ctx.arc(160, 70, 40, Math.PI * 0.9, Math.PI * 2.1, false); ctx.stroke(); ctx.strokeStyle = "#BF0628"; ctx.beginPath(); ctx.arc(250, 70, 40, Math.PI * 0.9, Math.PI * 1.1, false); ctx.stroke(); </script>
运行效果为:
至此,奥运五环就全部制作完成。
相关代码下载
- Html5制作奥运五环
- 制作奥运五环
- Matlab 关于奥运五环的制作
- HTML5实验室-canvas世界:实验1 奥运五环
- 应用2-制作简易版奥运五环
- 奥运五环
- 奥运五环
- 奥运五环
- 第一讲:使用html5——canvas绘制奥运五环
- windows 程序设计 奥运五环
- CreateJS奥运五环动画
- CreateJS奥运五环动画
- canvas画奥运五环
- CSS3绘制的奥运五环
- 用Applet画一个奥运五环
- 生成奥运五环的matlab代码
- 【MATLAB】用MATLAB绘制奥运五环
- 利用Graphics画奥运五环
- SetCommState函数失败原因
- cocos2d-iphone-2.0-rc2 API文档在Xcode中查阅显示
- POJ 1017 Packets
- myeclipse 提示键配置
- boost及libmemcache安装基于suse机器
- Html5制作奥运五环
- Hdu 1757 A Simple Math Problem
- Datastage Routine示例---提取JOB错误信息录入到数据库
- vsprintf()-Windows程序设计
- syslog(),openlog(),closelog()
- Android常用的工具类-收藏用
- class of service(COS)
- ShowWindow, UpdateWindow, SendMessage, PostMessage, PeekMessage, GetMessage
- 2012年热门mo game网络模块情况调查