1、Canvas绘制渐变图形

(1)绘制线性渐变
createLinearGradient()

**CanvasRenderingContext2D**.createLinearGradient()方法创建一个沿参数坐标指定的直线的渐变。该方法返回一个线性 CanvasGradient对象。

CanvasGradient _ctx_.createLinearGradient(x0, y0, x1, y1);

参数


x0
起点的 x 轴坐标。
y0
起点的 y 轴坐标。
x1
终点的 x 轴坐标。
y1
终点的 y 轴坐标。
addColorStop()

**CanvasGradient**.addColorStop() 方法添加一个由偏移值和颜色值指定的断点到渐变。如果偏移值不在0到``1之间,将抛出``INDEX_SIZE_ERR错误,如果颜色值不能被解析为有效的CSS颜色值 <color>,将抛出SYNTAX_ERR错误。

语法

void _gradient_.addColorStop(offset, color);

参数

offset

0到1之间的值,超出范围将抛出INDEX_SIZE_ERR错误
color
CSS颜色值 <color>如果颜色值不能被解析为有效的CSS颜色值<color>,将抛出SYNTAX_ERR错误。

实例代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>canvas3</title>
<script>
function draw(id){
var canvas = document.getElementById(id);
context = canvas.getContext("2d");
var g1 = context.createLinearGradient(0,0,0,300);
g1.addColorStop(0,"rgb(255,255,0)");
g1.addColorStop(1,"rgb(0,255,255)");
context.fillStyle = g1;
context.fillRect(0,0,500,500);
var g2 = context.createLinearGradient(0,0,300,0);
g2.addColorStop(0,"rgba(0,0,255,0.5)");
g2.addColorStop(1,"rgba(255,0,0,0.5)");
for(var i=0;i<10;i++){
context.beginPath();
context.fillStyle = g2;
context.arc(i*25,i*25,i*10,0,Math.PI*2,true);
context.closePath();
context.fill();
}
}
</script>
</head>
<body onload="draw('canvas')">
<canvas id="canvas" width="500px" height="500px"></canvas>
</body>
</html>
(2)绘制径向渐变

**CanvasRenderingContext2D**.createRadialGradient() 是 Canvas 2D API 根据参数确定两个圆的坐标,绘制放射性渐变的方法。这个方法返回CanvasGradient

语法

CanvasGradient _ctx_.createRadialGradient(x0, y0, r0, x1, y1, r1);

参数


x0
开始圆形的 x 轴坐标。
y0
开始圆形的 y 轴坐标。
r0
开始圆形的半径。
x1
结束圆形的 x 轴坐标。
y1
结束圆形的 y 轴坐标。
r1
结束圆形的半径。

返回值


CanvasGradient
由两个指定的圆初始化的放射性 CanvasGradient 对象。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>canvas4</title>
<script>
function draw(id){
var canvas = document.getElementById(id);
if(canvas == null){
return false;
}
var context = canvas.getContext("2d");
var g1 = context.createRadialGradient(400,0,0,400,0,400);
g1.addColorStop(0.1,"rgb(255,255,0)");
g1.addColorStop(0.3,"rgb(255,0,255)");
g1.addColorStop(1,"rgb(0,255,255)");
context.fillStyle = g1;
context.fillRect(0,0,500,500);
}
</script>
</head>
<body onload="draw('canvas')">
<canvas id="canvas" width="500px" height="500px"></canvas>
</body>
</html>

(3)绘制变形图形

translate(x,y) 移动
scale(x,y) 缩放
rotate(deg) 旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>canvas5</title>
<script>
function draw(id){
var canvas = document.getElementById(id);
if(canvas == null){
return false;
}
var context = canvas.getContext("2d");
context.fillStyle = "#eeeeef";
context.fillRect(0,0,500,500);
context.translate(200,50);
context.fillStyle="rgba(255,0,0,0.25)";
for(var i = 0;i<50;i++){
context.translate(25,25);
context.scale(0.95,0.95);
context.rotate(Math.PI/10);
context.fillRect(0,0,100,50);
}
}
</script>
</head>
<body onload="draw('canvas')">
<canvas id="canvas" width="500" height="500"></canvas>
</body>
</html>

Canvas3——绘制渐变图形与绘制变形图形相关推荐

  1. HTML5学习笔记14-Canvas绘制渐变图形与绘制变形图形

    1.线性渐变 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...

  2. HTML5利用Canvas绘制图形(绘制渐变、模式、变换)

    绘制渐变 渐变是一种很普遍的视觉形象,能带来视觉上的舒适感.在Canvas中,绘图API提供了两个原生的渐变方法,包括线性渐变和径向渐变.渐变,在颜色集上使用逐步抽样的算法,可以应用的描边样式和填充样 ...

  3. iOS:quartz2D绘图(绘制渐变图形)

    quartzD可以用来绘制渐变图形,即图形向外或向内发散,会变得越来越模糊. 渐变分为线性渐变和径向渐变,所谓线性渐变,就是图形以线的方式发散,发散后一般呈现出矩形的样子:而径向渐变,就是以半径的大小 ...

  4. 绘制变形图形--Canvas的基本操作

    1.坐标的变换 对坐标的变换处理,有如下三种方式. 平移 移动图形的绘制主要是通过translate 方法来实现的,该方法定义如下所示. context. translate(x, y); trans ...

  5. QT5开发及实例学习之十六Qt5基础图形的绘制

    文章目录 前言 一.绘图框架设计 二.绘图区的实现 三.主窗口的实现 前言   设计界面,区分各种形状及画笔颜色.画笔线宽.画笔风格.画笔顶帽.画笔连接点.填充模式.铺展效果.画刷颜色.画刷风格设置等 ...

  6. 计算机图形学实验二图形的绘制及裁剪

    图形的绘制及裁剪 1.六芒星的绘制 2.用扫描线填充算法(或种子填充算法) 3.实现不同属性的点和线.字符显示.反走样技术 4.实现线段裁剪的Cohen-Sutherland算法或Liang-Bars ...

  7. 视频教程-【吴刚】图形图标绘制表现技巧视频教程-UI

    [吴刚]图形图标绘制表现技巧视频教程 业内知名UID.UED.用户体验.品牌策略与创意设计师,十三年行业职业教育培训经验,业内"UI视频第一人",教学总监.视觉设计讲师. Adob ...

  8. 【吴刚】图形图标绘制表现技巧视频教程-吴刚-专题视频课程

    [吴刚]图形图标绘制表现技巧视频教程-267人已学习 课程介绍         本套教学视频系统化通过使用对相关软件(PS.AI)的软件实操应用,可以提高学员对基本软件工具的应用和实际操作能力. 课程 ...

  9. drawRect的绘制的使用(绘制文本字符、绘制图片、绘制图形)

    通过重写UIView的drawRect方法进行绘制使用,如绘制文本字符.绘制图片.绘制图形等. 在iOS中使用drawRect绘图一般分为以下5个步骤: 1.获取绘图上下文 CGContextRef ...

最新文章

  1. python的难点_汇总Python初学者常见的学习难点
  2. angular微信支付实际url地址不同
  3. 关于文件透明加密解密
  4. Spring2.5整合JPA
  5. java ftp复制文件_如何使用Java将FTP服务器上的文件复制到同一服务器上的目录中?...
  6. 在reader中勾选pdf复选框_Adobe Acrobat和Reader PDF文件处理缓冲区溢出漏洞
  7. threadgroup_Java ThreadGroup toString()方法与示例
  8. 使用ip rule查询路由策略, 使用ip route修改静态路由表
  9. 图像空域增强:卷积运算法
  10. pic1路AD转换c语言,PIC单片机AD转化器编程方法
  11. 多多农场游戏源码果园种植+养殖游戏 对接广告联盟APP+小程序
  12. 工业照明节能减碳难?致远ZWS云平台有妙招
  13. 几种不同格式的json数据及解析
  14. 基于matlab的动态心形图案
  15. Hudi-Flink CDC将MySQL数据写入hudi
  16. 面了一个37岁的程序员,我很慌......
  17. 来了,2020全球算力大会暨新基建矿业峰会,首批重磅嘉宾阵容出炉!
  18. 计算机图形学之机器人
  19. java计算机毕业设计基于安卓Android/微信小程序的大学生签到管理系统APP
  20. spoon java_如何以及为什么使用Spoon分析,生成和转换Java代码

热门文章

  1. VMware虚拟机/Hyper-V在(校园网/PPPoe拨号上网)环境无法上网解决方案
  2. 焦作市宇华学校2021高考成绩查询,河南2021高考最高分多少分,河南历年高考状元资料...
  3. GRE隧道配置实验(OSPF)
  4. 蓝牙解码格式哪个最好_可能是声音最好的蓝牙解码耳放之一,Oriolus 1795 体验...
  5. Fractal Streets||分形之城
  6. python展开阅读全文_展开阅读全文 js 爬虫操作
  7. Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值
  8. 前端如何显示服务器摄像头,浏览器显示海康摄像头实时预览画面纯前端解决方案...
  9. Multisim基础 示波器 波形沿Y轴正方向上移一格
  10. java 剪切 图片 BufferedImage