Html5:生成个玫瑰线图案

本文介绍了如何使用HTML5的canvas元素绘制玫瑰线图案。通过调整极坐标公式,实现了动态生成各种形态的玫瑰线。文章提供了完整的源代码,并探讨了其在网页设计中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个是网友 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  提供的图案和源码:

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-  
  2.   
  3. transitional.dtd">  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head>  
  6. <title>title</title>  
  7. <meta name="author" content="" />  
  8. <meta name="keywords" content="" />  
  9. <meta name="description" content="" />  
  10. <meta http-equiv="content-type" content="text/html; charset=utf-8" />  
  11.   
  12. <mce:style type="text/css"><!-- 
  13. #can {background-color:#ece9d8;} 
  14. --></mce:style><style type="text/css" mce_bogus="1">#can {background-color:#ece9d8;}</style>  
  15.   
  16. </head>  
  17. <body>  
  18. <canvas id="can" width="500" height="500"></canvas>  
  19.   
  20. <mce:script type="text/javascript"><!--  
  21. var canvas = document.getElementById("can");  
  22. var ctx = canvas.getContext("2d");  
  23. var _x = 250_y = 200;  
  24. ctx.beginPath();  
  25. ctx.shadowOffsetX = 1;  
  26. ctx.shadowOffsetY = 1;  
  27. ctx.shadowBlur    = 4;  
  28. ctx.shadowColor   = 'rgba(255, 255, 255, 1)';  
  29.   
  30. ctx.strokeStyle = "#000";  
  31. ctx.lineWidth = 1;  
  32. for (i = 0; i <= 360; i++)  
  33. {  
  34.     var point0 = getPoint(i - 1);  
  35.     var point = getPoint(i);  
  36.     ctx.moveTo(_x + point0[0], _y + point0[1]);  
  37.     ctx.lineTo(_x + point[0], _y + point[1]);  
  38. }  
  39. ctx.stroke();  
  40.   
  41. function getPoint(i){  
  42.     var len = 200 * Math.sin(5 * i );  
  43.     return [parseInt(len * Math.cos(i)), parseInt(len * Math.sin(i))];  
  44. }  
  45. // --></mce:script>  
  46. </body>  
  47. </html>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值