您的位置:首页 > Web前端 > HTML5

Html5:生成个玫瑰线图案

2010-07-16 11:22 218 查看


这个是网友 Vincent 所写的Html5的一些图案。邀请了他写的利用最新html5 容器绘图功能创立的。呵呵,他很快就写了记录下来了。于是,我把他的源码和图案都放在这里。用来体现一些这些绘图功能。看起来也很不错。

在数学书上,玫瑰线的极坐标公式定义为p=a*sin(n*angle);或者p=a*cos(n*angle)

我们借用了这种公式,但是在输入角度的时候作了一些调整,就会产生这种变化。

玫瑰线的历史,也可以追溯到航海时代。

参考资料如下

http://baike.baidu.com/view/301886.htm?fr=ala0_1_1

玫瑰线方面的数学可以参考如下网址获取更多这方面的了解

http://xuxzmail.blog.163.com/blog/static/251319162009739563225/

感谢:Vincent 提供的图案和源码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-

transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title</title>
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<mce:style type="text/css"><!--
#can {background-color:#ece9d8;}
--></mce:style><style type="text/css" mce_bogus="1">#can {background-color:#ece9d8;}</style>

</head>
<body>
<canvas id="can" width="500" height="500"></canvas>

<mce:script type="text/javascript"><!--
var canvas = document.getElementById("can");
var ctx = canvas.getContext("2d");
var _x = 250, _y = 200;
ctx.beginPath();
ctx.shadowOffsetX = 1;
ctx.shadowOffsetY = 1;
ctx.shadowBlur    = 4;
ctx.shadowColor   = 'rgba(255, 255, 255, 1)';

ctx.strokeStyle = "#000";
ctx.lineWidth = 1;
for (i = 0; i <= 360; i++)
{
var point0 = getPoint(i - 1);
var point = getPoint(i);
ctx.moveTo(_x + point0[0], _y + point0[1]);
ctx.lineTo(_x + point[0], _y + point[1]);
}
ctx.stroke();

function getPoint(i){
var len = 200 * Math.sin(5 * i );
return [parseInt(len * Math.cos(i)), parseInt(len * Math.sin(i))];
}
// --></mce:script>
</body>
</html>




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: