【Html5每日练习】canvas五彩缤纷的五角星
来源:互联网 发布:mac xlsx 编辑:程序博客网 时间:2024/04/29 02:34
貌似是很久没碰数学的缘故,今天计算如何绘制一个五角星特别地费力,看来还得好好地学下高数啊,太虚假了~~~
不过计算出来后还是有一点小小的错误,有两条边有点误差,大家就凑合看吧,不要见怪
<html lang="en-US"><canvas id=myCanvas width=500px height=500px></canvas><script>var myCanvas = document.getElementById("myCanvas");var context = myCanvas.getContext("2d");//创建五角星var shape = {};shape.star = function(l){var rad1 = Math.sin(0.4*Math.PI); //sin(72)var rad2 = Math.cos(0.4*Math.PI); //cos(72)var rad3 = Math.sin(0.2*Math.PI); //sin(36)var rad4 = Math.cos(0.2*Math.PI); //cos(36)with(context){moveTo(0,-l*rad1);lineTo(l*rad2,0);lineTo(l+l*rad2,0);lineTo(l*rad2+2*l*rad2*rad2,l*rad3);lineTo(l*rad4,2*l*rad1*rad1-l*rad1+l*rad3);lineTo(0,2*l*rad1*rad1-l*rad1);lineTo(-l*rad4,2*l*rad1*rad1-l*rad1+l*rad3);lineTo(-l*rad2-2*l*rad2*rad2,l*rad3);lineTo(-l-l*rad2,0);lineTo(-l*rad2,0);lineTo(0,-l*rad1);}} function addZero(string){return string.length == 2 ? string : '0' + string;} //随机颜色 function toRGB(redValue, greenValue, blueValue) {rgbR = addZero(redValue.toString(16)),rgbG = addZero(greenValue.toString(16)),rgbB = addZero(blueValue.toString(16));var rgb = "#" + rgbR + rgbG + rgbB;return rgb; }context.translate(250,100);for(var i=0;i<50;i++) {context.beginPath();context.scale(0.95,0.95); context.rotate(Math.PI/8); context.translate(70,-25);shape.star(50);//Math.random()返回的是0~~~1之间的数 所以乘以256context.fillStyle = toRGB(parseInt(Math.random()*256),parseInt(Math.random()*256),parseInt(Math.random()*256));context.fill();}</script></html>
效果图如下
- 【Html5每日练习】canvas五彩缤纷的五角星
- 【Html5每日练习】canvas beginPath()的理解
- 【Html5每日练习】canvas笑脸
- 【html5每日练习】html5 canvas画线
- 【html5每日练习】 html5 canvas "米"
- 【html5每日练习】canvas画矩形的3个函数
- 【Html5 每日练习】canvas绘制弧形
- HTML5新的东西:Canvas KineticJS五角星教程
- 【Html5每日练习】canvas quadraticCurve二次曲线深入理解
- 【Html5每日练习】canvas绘制线性渐变图形
- 【Html5每日练习】canvas绘制坐标变换图形
- canvas制作旋转的五角星
- 【html5 每日练习】钟表的外观
- 【Html5每日练习】三角形路径的绘画
- Canvas-五角星
- canvas五角星
- HTML5 Canvas基础练习
- 【HTML5】五角星
- Windows下Erlang的编译与运行问题
- 基于DirectShow及Opencv的双摄像头显示(WIN7)
- camshiftdemo.c [OpenCV的sample/c]
- hive sql分区表
- C#线程系列讲座(3):线程池和文件下载服务器
- 【Html5每日练习】canvas五彩缤纷的五角星
- opencv 中图片的旋转--不使用opencv自带的函数
- 万网centos5.4安装
- C#线程系列讲座(4):同步与死锁
- 黑马程序员_学习笔记25_string.Empty Null ""之间的区别
- NET操作word问题,被呼叫方拒绝接收呼叫
- cookie
- 开发随笔(20120414)
- vim代替source insight(eexpress关于vim的文章)