今天移动应用开发课要求实现上图效果。
原理很简单,先将原点移动到对应坐标,后用for循环分别画9个三角形并分别旋转即可。
这里只放第三个旋转渐变三角形的js代码
var c = document.getElementById("myCanvas");
var context = c.getContext('2d');
//渐变三角形
context.translate(300, 150); //原点移动到该坐标
context.rotate(-Math.PI / 180 * 30) //先旋转-30°,把三角形转正
for (let i = 0; i < 9; i++) {
context.beginPath(); //每次循环重置路径
context.rotate(Math.PI / 180 * 30); //旋转30°
context.fillStyle = "rgba("+(i*20)+","+(i*50)+","+(i*20)+","+(1-i/20)+")"; //渐变颜色
context.moveTo(0, 0); //开始点
context.lineTo(60, 0); //一条边
context.lineTo(30, 70); //另一条边
context.closePath(); //封闭图形
context.fill(); //填充颜色
}