`
lucifinilhades
  • 浏览: 86866 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

HTML5 绘制图形【3】

阅读更多

绘制渐变图形

渐变是指在填充时从一种颜色慢慢过渡到另外一种颜色。

绘制线性渐变

绘制线性渐变时,需要使用到LinearGradient对象。使用图形上下文对象的createLinearGradient()方法创建该对象。该方法的定义如下:

context.createLinearGradient(xStart, yStart, xEnd, yEnd);

该方法有四个参数,前两个参数指定渐变起始点的横坐标和纵坐标,后两个参数指定渐变终点的横坐标和纵坐标。通过使用该方法,创建了一个使用两个坐标点的LinearGradient对象。然后使用addColorStop()方法进行设定,该方法的定义如下:

linearGradient.addColorStop(offset, color);

使用这个方法可以追加渐变的颜色。该方法使用两个参数:offset为所设定的颜色离开渐变起点的偏移量,该参数的值是一个范围在0到1之间的浮点值,渐变起始点的偏移量为0,渐变结束点的偏移量为1;color为绘制时使用的颜色。

因为是渐变,所以至少需要使用两次addColorStop()方法以追加两个颜色(开始颜色与结束颜色),可以追加多个颜色。

接着把fillStyle设定为LinearGradient对象,然后执行填充的方法,就可以绘制出渐变图形了。

Canvas.prototype.createLinearGradient = function(xStart, yStart, xEnd, yEnd) {
	return this.context.createLinearGradient(xStart, yStart, xEnd, yEnd);
};

Canvas.prototype.createRadialGradient = function(xStart, yStart, radiusStart, xEnd, yEnd, radiusEnd) {
	return this.context.createRadialGradient(xStart, yStart, radiusStart, xEnd, yEnd, radiusEnd);
};

$(function() {
	var canvas = new Canvas("draw");
	var g1 = canvas.createLinearGradient(0, 0, 0, 400);
	g1.addColorStop(0, 'rgb(255, 255, 0)');
	g1.addColorStop(1, 'rgb(0, 255, 255)');
	canvas.fillStyle(g1).fillRect(0, 0, 400, 400);
	var g2 = canvas.createLinearGradient(0, 0, 400, 0);
	g2.addColorStop(0, 'rgba(0, 0, 255, 0.5)');
	g2.addColorStop(1, 'rgba(255, 0, 0, 0.5)');
	var xy, r;
	for(var i = 0; i < 10; i++) {
		xy = i * 25;
		r = i * 10;
		canvas.beginPath().fillStyle(g2).arc(xy, xy, r, 0, 2 * Math.PI, true).closePath().fill();
	}
});		

绘制径向渐变

径向渐变是指沿着圆形的半径方向向外进行扩散的渐变方式。例如,在描绘太阳时,沿着太阳的半径方向向外扩散出去的光晕,就是一种径向渐变。使用图形上下文对象的createRadialGradient()方法绘制径向渐变,该方法的定义如下:

context.createRadialGradient(xStart, yStart, radiusStart, xEnd, yEnd, radiusEnd);

该方法使用六个参数,前三个参数为渐变开始圆的圆心坐标和半径,后三个参数为渐变结束圆的圆心坐标和半径。在这个方法中,分别指定了两个圆的大小与位置。从第一个圆的圆心处向外进行扩散渐变,一直扩散到第二个圆的外轮廓处。在设定颜色时,与纯属渐变相同,使用addColorStop()方法进行设定即可。同样也需要设定0到1之间的浮点数来作为渐变转折点的偏移量。使用示例如下:

$(function() {
	var canvas = new Canvas("draw");
	var g1 = canvas.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)');
	canvas.fillStyle(g1).fillRect(0, 0, 400, 400);
	var g2 = canvas.createLinearGradient(250, 250, 0, 250, 250, 400);
	g2.addColorStop(0.1, 'rgba(255, 0, 0, 0.5)');
	g2.addColorStop(0.7, 'rgba(255, 255, 0, 0.5)');
	g2.addColorStop(1, 'rgba(0, 0, 255, 0.5)');
	var xy, r;
	for(var i = 0; i < 10; i++) {
		xy = i * 25;
		r = i * 10;
		canvas.beginPath().fillStyle(g2).arc(xy, xy, r, 0, 2 * Math.PI, true).closePath().fill();
	}
});		

 

分享到:
评论

相关推荐

    html5 canvas绘制七巧板图形代码

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制。七巧板是一种古老的益智玩具,由七个不同形状的板组成,可以拼出各种图案。在HTML5 Canvas上绘制七巧板图形,可以结合数学、编程和...

    html5 canvas绘制几何图形动画特效

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉效果。这个技术尤其适合创建几何图形动画特效,给用户带来互动且引人入胜的体验。以下是对HTML5 Canvas绘制几何...

    html5 canvas涂鸦画板绘制图形效果

    "html5 canvas涂鸦画板绘制图形效果"这一主题涵盖了Canvas的基本用法、图形绘制方法以及如何实现一个涂鸦画板功能。 1. **Canvas基本概念**: HTML5 Canvas是一个基于矢量图形的画布元素,通过JavaScript API提供...

    HTML5 canvas自由绘制图形工具.zip

    这个"HTML5 canvas自由绘制图形工具.zip"文件显然包含了一个实现用户可以在画板上自由绘制图形的应用。这个应用利用JavaScript(JS)的API来控制canvas元素,允许用户进行拖拽、绘制和编辑图形。 在HTML5中,`...

    vue+canvas绘制图形

    首先,我们来看"vue+canvas绘制图形"这个主题。Vue组件是Vue.js的核心特性之一,它允许我们将UI拆分成独立、可复用的部分。在这个项目中,我们可以创建一个名为`Canvas.vue`的Vue组件,专门负责处理Canvas元素。在`...

    应用html5以及js在网页上绘制图形

    应用html5画布功能以及脚本语言js在网页上绘制图表并标注

    HTML5绘制体温单图例

    在这个"HTML5绘制体温单图例"的项目中,前端开发者利用JavaScript(js)来根据数据配置动态生成体温图表,这涉及到一系列的技术和算法。 首先,Canvas API是HTML5中的一个核心组成部分,它提供了一组JavaScript方法...

    如何在Web页中绘制图形

    HTML5引入了Canvas API,这是一个基于标签的二维绘图上下文,允许开发者直接在浏览器中绘制图形。Canvas提供了丰富的绘图方法,如`fillRect()`, `strokeRect()`, `arc()`, `lineTo()`, `beginPath()`等,可以用来...

    根据用户数据表格html5绘制饼状图形代码

    总的来说,根据用户数据表格使用HTML5绘制饼状图的过程涉及HTML5的`&lt;canvas&gt;`元素、JavaScript的数据处理、图形绘制算法以及选择合适的库(如D3.js或Chart.js)。通过熟练掌握这些技术,开发者可以创建出互动性强、...

    HTML5绘制变形图形3.pdf

    HTML5 是一种强大的 web 开发技术,特别是在图形绘制方面,它提供了 Canvas API,使得开发者能够直接在浏览器上绘制丰富的交互式图形。本文档主要聚焦于使用 HTML5 的 Canvas API 来实现图形的变形和组合效果,以及...

    基于HTML5流程图绘制代码

    - **Canvas**:HTML5的Canvas是一块可以动态绘制图形的画布,通过JavaScript API,开发者可以直接在画布上绘制线条、形状、图像等。Canvas适合动态、数据驱动的图形绘制,例如图表、游戏场景等。 - **SVG...

    使用HTML5 Canvas绘制 3D房间模型和人物动画特效

    HTML5 Canvas是一个基于矢量图形的画布元素,通过JavaScript API来绘制图形。它提供了丰富的绘图函数,如线条、曲线、矩形、圆形、文本以及图片的绘制,使得在网页上动态生成和修改图形变得可能。 二、3D图形在...

    Html利用Canvas绘制图形

    HTML5的Canvas元素是网页动态图形绘制的重要工具,它允许开发者通过JavaScript代码在网页上创建出丰富的、交互式的2D图形。在这个主题中,“Html利用Canvas绘制图形”涵盖了多种形状的绘制方法,包括基础形状和复杂...

    html5 canvas实现的绘图工具自由绘制图形画板源码

    html5 canvas实现的绘图工具自由绘制图形画板源码 有很多功能

    html实现绘制图形(canvas &amp;&amp; html)

    然而,HTML本身并不支持直接绘制图形,这时就需要借助Canvas元素。Canvas是一个基于矢量图形的画布,我们可以使用JavaScript来控制它的每一像素,从而实现复杂的图形绘制和动画效果。 Canvas通过JavaScript API提供...

    HTML5绘制变形图形2案例.pdf

    在提供的"HTML5绘制变形图形2案例.pdf"学习资料中,主要涉及了三个关键知识点:坐标变换、平移效果和缩放效果。 1. **坐标变换**: 在案例1中,展示了如何利用`context.translate()`方法改变画布的坐标系。默认...

    HTML5 Canvas绘制时钟

    Canvas提供了各种方法和属性,如`fillRect()`(填充矩形)、`beginPath()`(开始路径)和`stroke()`(描边)等,用于绘制图形。 2. Canvas API - `getContext()`: 这个方法用于获取Canvas的绘图环境,通常返回一个...

    html5 canvas自定义绘制多边图形代码

    Canvas 提供了一个二维绘图环境,可以用来绘制图形、动画,甚至处理图像。在Canvas上绘制多边形是常见的需求,尤其在创建自定义图形、游戏或者数据可视化时。本篇文章将深入探讨如何使用HTML5 Canvas自定义绘制多边...

    HTML5应用开发技术-canvas绘制图形、图像与文字.pptx

    在这个“HTML5应用开发技术-canvas绘制图形、图像与文字”的主题中,我们将深入探讨Canvas API的使用。 首先,Canvas API提供了一系列的方法来绘制图形。在案例中,可以看到如何在画布中心绘制文字。首先,通过`...

    html5 canvas实现的绘图工具自由绘制图形画板源码.zip

    这是一款基于html5 canvas实现的绘图工具自由绘制图形画板源码,具备画板基本的线、矩形、铅笔、圆、五角星等绘图工具,及颜色与边框的填充,橡皮擦等功能。绘图完毕还具有保存图片的功能。是一款非常实用的经典...

Global site tag (gtag.js) - Google Analytics