HTML5在canvas中绘制复杂形状附效果截图

一、绘制复杂形状或路径 
在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径。 
beginPath() : 开始绘制一个新路径。 
closePath() : 通过绘制一条当前点到路径起点的线段来闭合形状。 
fill() , stroke() : 填充形状或绘制空心形状。 
moveTo() : 将当前点移动到点(x,y)。 
lineTo() : 从当前点绘制一条直线到点(x,y)。 
arc(x,y,r,sAngle,eAngle,counterclockwise) : 绘制一条指定半径的弧到点(x,y)。

二、用这些方法绘制复杂形状需遵循以下步骤 

使用beginPath()方法开始绘制路径。 
使用moveTo()、lineTo()、arc()、方法创建线段。 
使用closePath()结束绘制并闭合形状(可选)。 
使用stroke()或fill()绘制路径的外边框或填充形状。使用fill()会自动闭合所有未闭合路径。

三、弧arc()绘制说明 
 
 
四、在canvas中绘制复杂形状 
代码如下:

<!DOCTYPE
html>

<html
xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta
http-equiv="Content-type"
content="text/html; charset = utf-8">

<title>HTML5</title>

<script
type="text/javascript"
charset="utf-8">

//这个函数将在页面完全加载后调用

function pageLoaded() {

//获取canvas对象的引用,注意tCanvas名字必须和下面body里面的id相同

var canvas = document.getElementById('tCanvas');

//获取该canvas的2D绘图环境

var context = canvas.getContext('2d');

//绘制代码将出现在这里

//绘制复杂性猪

//填充三角形

context.beginPath();

context.moveTo(10, 120);//从(10,20开始)

context.lineTo(10, 180);//表示从(10,120)开始,画到(10,180)结束

context.lineTo(110, 150);//表示从(10,180)开始,画到(110,150)结束

context.fill();//闭合形状并且以填充方式绘制出来

//三角形的外边框

context.beginPath();

context.moveTo(140, 160);//从点(140,160)开始

context.lineTo(140, 220);

context.lineTo(40, 190);

context.closePath(); //关闭路径

context.stroke(); //以空心填充

//一个复杂的多边形

context.beginPath();

context.moveTo(160, 160);//从点(160,160)开始

context.lineTo(170, 220);

context.lineTo(240, 210);

context.lineTo(260, 170);

context.lineTo(190, 140);

context.closePath();

context.stroke();

//绘制弧

//绘制半圆弧

context.beginPath();

,角度从0到180°的弧线

context.arc(100, 300, 40, 0 * Math.PI, 1 * Math.PI, true); //PI的弧度是180°

context.stroke();

//画一个实心圆

context.beginPath();

,角度为0到360°的弧

context.arc(100, 300, 30, 0 * Math.PI, 2 * Math.PI, true);//2*Math.PI是360°

context.fill();

//画一个3/4弧

context.beginPath();

,角度为0到270°的弧

context.arc(200, 300, 25, 0 * Math.PI, 3 / 2 * Math.PI, false);

context.stroke();

}

</script>

</head>

<body
onload="pageLoaded();">

<canvas
width="400"
height="400"
id="tCanvas"
style="border:black
1px
solid;">

<!--如果浏览器不支持则显示如下字体-->

提示:你的浏览器不支持

标签

</canvas>

</body>

</html>

五、绘制效果 

HTML5在canvas中绘制复杂形状附效果截图的更多相关文章

  1. HTML5 在canvas中绘制复杂形状

    作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/32942667 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,画图环 ...

  2. 用html5的canvas画布绘制贝塞尔曲线

    查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  3. 浅谈canvas中的拖尾效果

    引言 很早就想了解以下 canvas 中的拖尾效果(如彗星,烟花等效果)是怎么实现的,但是一直没有深入了解,正巧在 codepen 上看到一个 demo,代码简单,效果炫酷,故有此文. 什么黑科技 在 ...

  4. 在 Canvas 中绘制扇形

    在 HTML5 Canvas 中,我们可以通过 arc 方法来绘制圆形: // context.arc(x, y, r, sAngle, eAngle, counterclockwise); var ...

  5. HTML5使用Canvas来绘制图形

    一.Canvas标签: 1.HTML5<canvas>元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.<canvas>标签只是图形容器,必须使用脚本来绘 ...

  6. HTML5 Canvas中绘制椭圆的几种方法

    1.canvas自带的绘制椭圆的方法 ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)是后来 ...

  7. Canvas中绘制贝塞尔曲线

    ① 什么是贝塞尔曲线? 在数学的数值分析领域中,贝济埃曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线.更高维度的广泛化贝济埃曲线就称作贝济埃曲面,其中贝济埃三 ...

  8. html5 js canvas中画星星的函数

    function drawStar(cxt, x, y, outerR, innerR, rot) { cxt.beginPath(); ; i < ; i++) { cxt.lineTo(Ma ...

  9. <canvas>中isPointInPath()方法在不同绘制内容中的效果

    <canvas>是HTML5中新增加的一个元素,我们可以使用脚本(通常使用JavaScript)在上面绘制图形,就像个画布一样.我们可以用它来绘制图表.制作一些动画.默认大小为300px ...

随机推荐

  1. CODEVS3037 线段覆盖 5[序列DP 二分]

    3037 线段覆盖 5   时间限制: 3 s   空间限制: 256000 KB   题目等级 : 钻石 Diamond 题解       题目描述 Description 数轴上有n条线段,线段的 ...

  2. 面向移动设备的html5开发框架

    很久以前整理了篇将手机网站做成手机应用的JS框架.时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的. 1.jQuery Mobile jQuery Mobile ...

  3. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 网络订单提醒功能,网点区域功能增强

    客户端会提醒是否有网络订单来了,这样及时处理网络上的用户下单,当然也会有手机短信系统,全国几千个网点就可以协同作战了,竟然有序的处理海量用户的下单.网络订单提醒功能增强效果如下: 系统每5分钟会检查一 ...

  4. Charles 如何抓取https数据包

    Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...

  5. Java 8新特性终极指南

    目录结构 介绍 Java语言的新特性 2.1 Lambdas表达式与Functional接口 2.2 接口的默认与静态方法 2.3 方法引用 2.4 重复注解 2.5 更好的类型推测机制 2.6 扩展 ...

  6. Computer vision labs

    积累记录一些视觉实验室,方便查找 1.  多伦多大学计算机科学系 2.  普林斯顿大学计算机视觉和机器人实验室 3.  牛津大学Torr Vision Group 4.  伯克利视觉和学习中心 Pro ...

  7. ubuntu12.04 安装CS:APP Y86模拟器

    下的第一UBUNTU12.04下Y86模拟器的安装:(參考http://archive.cnblogs.com/a/1865627/ 作适当改动) 1.安装bison和flex词法分析工具 sudo ...

  8. 进程间通信(linux)(转)

    原帖发表在IBM的developerworks网站上,是一个系列的文章,作者郑彦兴,通过讲解和例子演示了Linux中几种IPC的使用方式,我觉得很好,在这里做一个保留,能看完的话Linux IPC的基 ...

  9. 【跟着子迟品 underscore】如何优雅地写一个『在数组中寻找指定元素』的方法

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  10. CSS基本知识5-CSS对齐

    要对齐的关键,在于理解块,行的概念,块的对齐主要靠自动计算定位,比如margin:auto,及浮动,所以最好的办法是尽量使用行来对齐. 实例: .box { border: 1px solid #80 ...