国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 15:01:36
字體:
來源:轉載
供稿:網友

第一種方法


代碼實現的一種方法

<!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繪制愛心的幾種方法總結(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克苏市| 尚义县| 深州市| 阜南县| 卢龙县| 永善县| 文成县| 唐海县| 肃宁县| 堆龙德庆县| 和田县| 北流市| 南皮县| 沧州市| 郑州市| 怀来县| 临澧县| 辛集市| 沈丘县| 四会市| 陇南市| 收藏| 饶阳县| 方山县| 闽侯县| 平乐县| 蓝田县| 灌云县| 津南区| 夏津县| 龙游县| 台东市| 通江县| 龙江县| 历史| 白城市| 绍兴市| 呼和浩特市| 扶绥县| 滕州市| 策勒县|