欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-24 11:01:58
在简单的矩形不能满足需求的情况下,可以同本例提供的方法来绘制复杂的形状或路径。下面为大家介绍下HTML5如何在canvas中绘制复杂形状,需要的朋友可以参考下... 14-06-23...
一、绘制复杂形状或路径

在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径。

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()绘制说明
HTML5在canvas中绘制复杂形状附效果截图 
HTML5在canvas中绘制复杂形状附效果截图 
四、在canvas中绘制复杂形状

复制代码
代码如下:

<!--<!doctype> 声明必须是 html 文档的第一行,位于 <html> 标签之前。-->
<!doctype html>
<html>
<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();
//在(100,300)处逆时针画一个半径为40,角度从0到180°的弧线
context.arc(100,300,40,0*math.pi,1*math.pi,true); //pi的弧度是180°
context.stroke();
//画一个实心圆
context.beginpath();
//在(100,300)处逆时针画一个半径为30,角度为0到360°的弧
context.arc(100,300,30,0*math.pi,2*math.pi,true);//2*math.pi是360°
context.fill();
//画一个3/4弧
context.beginpath();
//在(200,300)处顺时针画一个半径为25,角度为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>标签
</canvas>
</body>
</html>

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