HTML5-画布(canvas)效果之-渐变色

<!DOCTYPE HTML>
<html>
<head>
<title>渐变色</title>
</head>
<body>
<canvas id="canvas" width="200" height="100" style="background-color: rgb(222, 222, 222)">
您的浏览器不支持 canvas 标签
</canvas>
<br />
<button type="button" onclick="drawIt();">Demo</button>
<button type="button" onclick="clearIt();">清除画布</button>

<script type="text/javascript">

var ctx = document.getElementById('canvas').getContext('2d');

function drawIt() {

clearIt();

/*
* context.createLinearGradient(xStart, yStart, xEnd, yEnd) - 创建线性渐变对象,并返回 CanvasGradient 类型的对象
* xStart, yStart - 线性渐变对象的起始点坐标
* xEnd, yEnd - 线性渐变对象的结束点坐标
*
* CanvasGradient.addColorStop(offset, color) - 新增一个渐变参考点
* offset - 渐变参考点的位置,0.0 - 1.0 之间。起始点为 0,结束点为 1
* color - 渐变参考点的颜色值
*/
var linearGradient = ctx.createLinearGradient(50, 0, 50, 100);
linearGradient.addColorStop(
0, "red");
linearGradient.addColorStop(
0.5, "green");
linearGradient.addColorStop(
1, "blue");

ctx.beginPath();
ctx.arc(
50, 50, 50, 0, 2 * Math.PI, true);
ctx.fillStyle
= linearGradient;
ctx.fill();


/*
* context.createRadialGradient(xStart, yStart, radiusStart, xEnd, yEnd, radiusEnd) - 创建放射性渐变对象,并返回 CanvasGradient
* xStart, yStart - 放射性渐变对象的开始圆的圆心坐标
* radiusStart - 开始圆的半径
* xEnd, yEnd - 放射性渐变对象的结束圆的圆心坐标
* radiusEnd - 结束圆的半径
*/
var radialGradient = ctx.createRadialGradient(150, 50, 0, 150, 50, 50);
radialGradient.addColorStop(
0, "red");
radialGradient.addColorStop(
0.5, "green");
radialGradient.addColorStop(
1, "blue");

ctx.beginPath();
ctx.arc(
150, 50, 50, 0, 2 * Math.PI, true);
ctx.fillStyle
= radialGradient;
ctx.fill();
}

function clearIt() {
ctx.clearRect(
0, 0, 200, 100);
}

</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh架构之hibernate(一)简单使用hibernate完成CRUD

1.Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)框架&#xff0c;它对JDBC进行了非常轻量级的对象封装&#xff0c;它将POJO与数据库表建立映射关系&#xff0c;是一个全自动的orm框架&#xff0c;hibernate可以自动生成SQL语句&#xff0c;自动执行&#xff0c…

使用AspectJ审计Spring MVC Webapp。 第1部分

如果您像我一样&#xff0c;那么您将拥有那种编程天&#xff0c;一切似乎都进展顺利。 您编写代码和测试&#xff0c;它就可以正常工作。 然后还有其他日子&#xff0c;非常糟糕的日子&#xff0c;在那儿&#xff0c;您知道所编写的所有内容都尽可能正确&#xff0c;并且代码拒…

GitHub注册和Git安装

一、注册GitHub GitHub官方地址&#xff1a;https://github.com。 在浏览器中打开GitHub网址&#xff0c;通过首页进行注册&#xff0c;如下图所示。 二、安装Git Git官方下载地址&#xff1a;http://git-scm.com/download/。 Git支持多平台&#xff08;Mac OS X/Windows/Linux…

django mysql迁移_关于django 数据库迁移(migrate)应该知道的一些事

命令首先数据库迁移的两大命令&#xff1a;python manage.py makemigrations & python manage.py migrate前者是将model层转为迁移文件migration&#xff0c;后者将新版本的迁移文件执行&#xff0c;更新数据库。这两中命令调用默认为全局&#xff0c;即对所有最新更改的mo…

如何存储和恢复 HTML5 Canvas 状态

当我们在 HTML5 Canvas 上使用其 2D 上下文进行图形绘制的时候&#xff0c;可以通过操作 2D 上下文的属性来绘制不同风格的图形&#xff0c;例如不同字体、填充等等。 通常情况下&#xff0c;在画布上的绘图时&#xff0c;您需要更改在绘制的2D背景下的状态。例如&#xff0c;你…

通过JNI使用C ++尖叫快速进行Lucene搜索

一天结束时&#xff0c;Lucene执行查询时&#xff0c;在初始设置后&#xff0c;真正的热点通常是相当基本的代码&#xff0c;它解码整数docID&#xff0c;术语频率和位置的顺序块&#xff0c;并对其进行匹配&#xff08;例如&#xff0c;对BooleanQuery并集或交集&#xff09;&…

“我们应当怎样做需求分析”——大纲卷

这是一篇关于怎么进行软件需求分析的文章&#xff0c;读完的第一个感觉就是累。真的是特别累&#xff0c;我大概估计了一下&#xff0c;得有40000个字。不过读完之后还是有一点收获的。下面是一个大概的内容。 一.需求调研阶段 初识1.在客户组织的第一场见面会上&#xff0c;保…

动态语言

这是动态语言和静态语言&#xff08;例如Java&#xff09;最大的差别之一。动态语言调用实例方法&#xff0c;不检查类型&#xff0c;只要方法存在&#xff0c;参数正确&#xff0c;就可以调用。 %d:输入输出中的格式控制,以整数的形式输入输出.%f:输入输出中的格式控制,以小数…

innodb和my查询速度_吃透MySQL:MyISAM和InnoDB存储引擎详细介绍

一&#xff0c;MySQL基本架构MySQL基础架构可以分为两大类&#xff1a;Server层和存储引擎层。Server层&#xff1a; Server层涵盖了MySQL大部分核心业务功能&#xff0c;并且所有存储引擎的功能都在这一层实现。存储引擎层&#xff1a;存储引擎有很多&#xff0c;各自有着各自…

Java EE EJB拦截器教程和示例

在此示例中&#xff0c;我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义&#xff0c;当您想拦截对EJB方法的调用时&#xff0c;将使用拦截器。 如果为Bean声明一个拦截器&#xff0c;则每次调用该Bean的方法时&#xff0c;该拦截器的一…

HTML5结合ajax实现文件上传以及进度显示

基于原生html5实现&#xff0c;不需要falsh支持&#xff0c;进度可以自定义显示&#xff0c;控制灵活&#xff0c; 本来打算使用jquery插件进行异步文件上传&#xff0c;比如uploadfy但是需要额外的支持&#xff0c;也有人用iframe模仿异步上传机制&#xff0c;感觉都比较别扭。…

Mac python Tesseract 验证码识别

Tesseract 简介 Tesseract(/tesərkt/) 这个词的意思是"超立方体"&#xff0c;指的是几何学里的四维标准方体&#xff0c;又称"正八胞体"。不过这里要讲的&#xff0c;是一款以其命名的开源 OCR(Optical Character Recognition, 光学字符识别) 软件。 所谓…

构建器模式:适用于代码,适用于测试

我发现生成器设计模式偶尔在代码中有用&#xff0c;但在测试中经常有用。 本文简要概述了该模式&#xff0c;然后介绍了在测试中使用该模式的一个有效示例。 请参阅github中的代码。 生成器模式的背景 根据GoF的书 &#xff0c;构建器设计模式用于“将复杂对象的构造与其表示分…

如何判断html页面停止滚动?

写在开始的话 查遍的文献&#xff0c;没有找到js或者jquery定义好的方法可用&#xff0c;最后迫不得已自己写了个方法。&#xff08;如果哪位同学知道有其他方法&#xff0c;欢迎讨论&#xff09; 代码 var count_index 0;$(window).scroll(function(e) {if(count_index 0) {…

HTML5教程之-文件拖拽功能实现

现在打开优酷的网站我们再观看视频时如果拖动滚动条&#xff0c;页面会自动出现一个小的播放窗口&#xff0c;而这个播放窗口是可以说随便拖拽的。这种对图片或者链接的拖拽效果是怎么实现的&#xff1f;其实用HTML5就很容易实现了&#xff0c;因为HTML5中有个html5中默认对图片…

php 打乱数组顺序_PHP实现大转盘抽奖算法

php中文网最新课程每日17点准时技术干货分享本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法&#xff0c;希望对大家学习PHP抽奖有所帮助。流程&#xff1a;1.拼装奖项数组&#xff1b;2.计算概率&#xff1b;3.返回中奖情况。代码如下&#xff1a;中奖概率 v 可以…

linux线程基础篇----线程同步与互斥

linux线程基础----线程同步与互斥 一、同步的概念 1.同步概念 所谓同步&#xff0c;即同时起步&#xff0c;协调一致。不同的对象&#xff0c;对“同步”的理解方式略有不同。如&#xff0c;设备同步&#xff0c;是指在两个设备 之间规定一个共同的时间参考&#xff1b;数据库同…

分布式系统开发注意事项

开发分布式软件系统时&#xff0c;要考虑许多因素。 如果您甚至不知道第一句话中我在说什么&#xff0c;那么让我为您提供一些见解&#xff0c;示例以及有关分布式系统的实例。 总览 分布式系统是指多个物理硬件设备与单独的离散用户交互并通过这些硬件设备协作以为这些离散的…

只需5步,轻松创建HTML5离线应用

1 – 添加 HTML5 doctype第一件要做的事情是创建一个符合规范的 HTML5 文档。HTML5 doctype 相比于 xhtml 版本的 doctype 而言&#xff0c;要简单明了得多&#xff1a; <!DOCTYPE html><html> ...创建一个名为 index.html 的文档&#xff0c;或者猛击这里下载这份…

软工读书笔记 week 1

这次读书笔记主要是就《程序员修炼之道》这本书的前半部分做一些总结以及发表一些自己的看法。 本书前面的一部分主要是一些程序员应该在工作中时刻注意的事情&#xff0c;一些关键的信息如下&#xff1a; 1、处理问题的态度与责任。 这是在本书序言中就提到的&#xff0c;可见…