当前位置:Gxlcms > html代码 > html5canvas绘制爱心的方法示例

html5canvas绘制爱心的方法示例

时间:2021-07-01 10:21:17 帮助过:124人阅读

第一种方法


代码实现的一种方法

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>使用桃心形方程绘制爱心</title>
  6. </head>
  7. <body>
  8. <canvas></canvas>
  9. <script>
  10. var canvas = document.querySelector('canvas');
  11. var ctx = canvas.getContext('2d');
  12. canvas.width = window.innerWidth;
  13. canvas.height = window.innerHeight;
  14. var Heart = function(x, y) {
  15. this.x = x;
  16. this.y = y;
  17. this.vertices = [];
  18. for(let i=0; i<30; i++) {
  19. var step = i / 30 * (Math.PI * 2);//设置心上面两点之间的角度,具体分成多少份,好像需要去试。
  20. var vector = {
  21. x : (15 * Math.pow(Math.sin(step), 3)),
  22. y : -(13 * Math.cos(step) - 5 * Math.cos(2 * step) - 2 * Math.cos(3 * step) - Math.cos(4 * step))
  23. }
  24. this.vertices.push(vector);
  25. }
  26. }
  27. Heart.prototype.draw = function() {
  28. ctx.translate(-1000,this.y);//这一步跟ctx.shadowOffsetX必须一起使用,不明白为啥?
  29. ctx.beginPath();
  30. for(let i=0; i<30; i++) {
  31. var vector = this.vertices[i];
  32. ctx.lineTo(vector.x, vector.y);
  33. }
  34. ctx.shadowColor = "red";
  35. ctx.shadowOffsetX = this.x+1000;
  36. ctx.fill();
  37. }
  38. canvas.onmousedown = function(e) {
  39. var x = e.offsetX;
  40. var y = e.offsetY;
  41. var heart = new Heart(x, y);
  42. heart.draw();
  43. }
  44. </script>
  45. </body>
  46. </html>

以上就是html5 canvas绘制爱心的方法示例的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行