收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > JavaScript > JavaScript技巧 > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

canvas繪制愛心的幾種方法總結(推薦)

第一種方法

查看圖片

代碼實現的一種方法

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>使用桃心形方程繪制愛心</title>
</head>
<body>
 <canvas></canvas>
 <script>
 var canvas = document.querySelector('canvas');
 var ctx = canvas.getContext('2d');
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 var Heart = function(x, y) {
  this.x = x;
  this.y = y;
  this.vertices = [];
  for(let i=0; i<30; i++) {
  var step = i / 30 * (Math.PI * 2);//設置心上面兩點之間的角度,具體分成多少份,好像需要去試。
  var vector = {
   x : (15 * Math.pow(Math.sin(step), 3)),
   y : -(13 * Math.cos(step) - 5 * Math.cos(2 * step) - 2 * Math.cos(3 * step) - Math.cos(4 * step))
  }
  this.vertices.push(vector);
  }
 }
 Heart.prototype.draw = function() {
  ctx.translate(-1000,this.y);//這一步跟ctx.shadowOffsetX必須一起使用,不明白為啥?
  ctx.beginPath();
  for(let i=0; i<30; i++) {
  var vector = this.vertices[i];
  ctx.lineTo(vector.x, vector.y);
  }
  ctx.shadowColor = "red";
  ctx.shadowOffsetX = this.x+1000;
  ctx.fill();
 }
 canvas.onmousedown = function(e) {
  var x = e.offsetX;
  var y = e.offsetY;
  var heart = new Heart(x, y);
  heart.draw();
 }
 </script>
</body>
</html>

代碼里面有兩處地方不明白 ctx.translate(-1000,this.y); ctx.shadowOffsetX = this.x+1000; 能感覺出來什么意思,但是不知道為啥要加上,去掉就不行了。請路過的各位大佬們幫忙解答一下~~

以上這篇canvas繪制愛心的幾種方法總結(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持積木網。

js 獲取json數組里面數組的長度實例
作為一個前端頁面開發者第一次處理json數據,遇到了‘js獲取json數組里面數組的長度'?竟然不知道json沒有.length屬性(真是要嘲諷下自己),少壯不努

ES6解構賦值實例詳解
本文實例講述了ES6解構賦值。分享給大家供大家參考,具體如下:基本用法let[x,y,...z]=['a']//"a",undefined,[]1.等號右邊如果不是數組,將會報錯(不是可遍

React Native中導航組件react-navigation跨tab路由處理詳解
前言大家應該都有所體會,我們在一般應用都有跨tab跳轉的需求,這就需要特別處理下路由,所以下面是使用react-navigation作為路由組件的一種方式.具體

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
36选7走势图大全 五分快乐8选号技巧 大盘权重股有哪些股票 上海期货大厦配资网 广东十分快乐开奖結果 黑龙江11选5真准网 湖北新十一选五遗漏一定牛 今日排列三开奖直播现场 股票配资亏损了警察管吗 排列五怎么看规律 甘肃十一选五平台 河北11选5推荐号今天 江苏快三走势图200期 湖北体彩11选5前三组选 彩票购买网站 宁夏11选5走势图一定牛 泳坛夺金手机上能玩吗