canvas 实现渐变色填充的三角形
实现效果
效果一:
效果二:
实现思路
canvas实现
1. 绘制三角形
// html
<canvas id="triangle" width="30" height="30">
Your browser does not support the canvas element.
</canvas>
// javascript
var triangle: any = document.getElementById("triangle");
var ctx = triangle.getContext("2d"); // canvas 绘制区域
ctx.beginPath(); // 开始绘制
ctx.moveTo(0, 0); // 起点A(0,0)
ctx.lineTo(30, 0); // 从起点A(0,0)绘制到B(30,0)
ctx.lineTo(15, 16); // 从B(30,0)绘制到C(15,16)
2. 设置渐变色并填充
// javascript
const grd1 = ctx.createLinearGradient(0, 0, 0, 16); // 渐变方向-Y轴
grd1.addColorStop(0, "#FFFFFF"); //起始颜色
grd1.addColorStop(1, "#CE070A80"); //终点颜色
ctx.fillStyle = grd1; //以上面定义的渐变填充
ctx.fill(); //闭合形状并且以填充方式绘制出来
【拓展】上述代码实现一个渐变色三角形,如果想要绘制多个渐变色三角形,就需要多次进行「1,2」操作。示例代码:
点击查看代码
var bg: any = document.getElementById("triangle");
var ctx = bg.getContext("2d");
ctx.beginPath();
ctx.moveTo(0, 10);
ctx.lineTo(30, 10);
ctx.lineTo(15, 26);
const grd2 = ctx.createLinearGradient(0, 10, 0, 26);
grd2.addColorStop(0, "#FFFFFF"); //起始颜色
grd2.addColorStop(1, "#CE070A80"); //终点颜色
ctx.fillStyle = grd2; //以上面定义的渐变填充
ctx.fill(); //闭合形状并且以填充方式绘制出来
//填充三角形(等边)
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(30, 0);
ctx.lineTo(15, 16);
const grd1 = ctx.createLinearGradient(0, 0, 0, 16);
grd1.addColorStop(0, "#FFFFFF"); //起始颜色
grd1.addColorStop(1, "#CE070A80"); //终点颜色
ctx.fillStyle = grd1; //以上面定义的渐变填充
ctx.fill(); //闭合形状并且以填充方式绘制出来
css实现
1. 绘制渐变色的矩形
// html
<div className="triangle"></div>
// css
.triangle {
width: 30px;
height: 16px;
background-image: linear-gradient(#FFFFFF, #CE070A80);
}
2. 绘制两个和背景色同色的三角形
// css
.triangle:before {
position: absolute;
content: "";
width: 0;
height: 0;
border-right: 15px solid transparent;
border-bottom: 16px solid #FFFFFF;
}
.triangle:after {
position: absolute;
content: "";
right: 0; // 使绘制的三角形位于矩形右侧
width: 0;
height: 0;
border-left: 15px solid transparent;
border-bottom: 16px solid #FFFFFF;
}
【缺点】这种方式不能实现效果二,对于效果一不允许背景色带有透明度,实现效果有一定的局限性。
总结
对于简单的效果,建议使用方法二,如果要实现较为复杂的效果,可以使用方法一或者直接用图片替代(这种方式最简单直接)
canvas 实现渐变色填充的三角形的更多相关文章
- 使用canvas绘制渐变色矩形和使用按键控制人物移动
使用canvas绘制渐变色矩形和使用按键控制人物移动 1.使用canvas绘制渐变色矩形 效果演示 相关代码: <!DOCTYPE html> <html lang="en ...
- canvas快速绘制圆形、三角形、矩形、多边形
想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...
- canvas放射性渐变填充
今天在学习canvas时,遇到canvas的fillstyle有一个createRadialGradient()方法,创建放射性渐变. 上代码: <!DOCTYPE html> <h ...
- 小程序canvas绘制渐变色(简单入门)
呀,曾经的我是那么的单纯,天真,粗略的翻了一遍小程序画布API,没有看见渐变色,就以为不支持渐变色 于是在项目中直接把原本的渐变色换成了单一颜色展示,发现很low啊 但是,自从上次小程序API文档更新 ...
- html5 canvas用图案填充形状
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- html5 canvas 多个填充渐变形状
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HTML5 Canvas渐进填充与透明
详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使 用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canv ...
- Windows游戏编程大师技巧之三角形填充
一.三角形的种类 三角形一般可以分为如下的四种类型(这四种类型是对于计算机来说的,不是数学意义上的分类): 平顶三角形:就是在计算机中显示的上面两个顶点的Y坐标相同. 平底三角形:就是在计算机中显示的 ...
- Web前端学习笔记——Canvas
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
随机推荐
- Revit二次开发之获取本机已安装的Revit版本与路径
在revit安装目录下找到 RevitAddInUtility.dll 在项目中引用 使用以下方法 using Autodesk.RevitAddIns; /// <summary> // ...
- CF1550D Excellent Arrays
考虑每个数一定是这个形式: \(i + x,i - x\) 所以如果我们要构造一个最大的数组. 那一定是这样的形式: 有一半为\(i + x\),有一半\(i - x\) 那么我们发现每个数有这样一个 ...
- Codeforces 1304F1/F2 Animal Observation(单调队列优化 dp)
easy 题目链接 & hard 题目链接 给出一张 \(n \times m\) 的矩阵,每个格子上面有一个数,你要在每行选出一个点 \((i,t)\),并覆盖左上角为 \((i,t)\), ...
- Neville 插值方法
简介 wikipedia: Neville's method 在数学上,Neville 算法是一种计算插值多项式方法,由数学家Eric Harold Neville提出.由给定的n+1个节点,存在一个 ...
- R语言hist重叠图作法
set.seed(1) h1<-hist(rnorm(1000,100,5)) h2<-hist(rnorm(1000,99,5)) plot(h2,col=rgb(255,0,0,50, ...
- 【翻译】.NET 6 中的 dotnet monitor
原文:Announcing dotnet monitor in .NET 6 我们在 2020 年 6 月首次推出了dotnet monitor 作为实验工具,并在去年(2020年)努力将其转变为生产 ...
- 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤
目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...
- 【风控算法】一、变量分箱、WOE和IV值计算
一.变量分箱 变量分箱常见于逻辑回归评分卡的制作中,在入模前,需要对原始变量值通过分箱映射成woe值.举例来说,如"年龄"这一变量,我们需要找到合适的切分点,将连续的年龄打散到不同 ...
- 26. Linux GIT
windows git 下载链接: Msysgit https://git-scm.com/download/win 1 进入git bash进行第一次配置 git config --global ...
- k8s StatefulSet控制器-独立存储
k8s-StatefulSet控制器-独立存储 1. StatefulSet控制器-独立存储 独享存储:StatefulSet的存储卷使用VolumeClaimTemplate创建,称为卷申请模板,当 ...