画布可以画出许多奇妙的图案和美丽的效果。通过几个简单的API,你可以在画布上
显示千变万化的效果,你也可以
创建网页游戏。接下来,总结与绘图相关的API。
当绘画时,画布相当于画布,而
背景相当于画笔。
1。画线
MoveTo(x0,y0):将当前的画笔(ICTx)的
位置(x0,y0)。
LineTo(x1,y1):从当前位置画一条直线(x0,y0)到(x1,y1)。
BeginPath():打开一个
路径或重置当前路径。
ClosePath():从目前来看,这是回到起点的路径,最后调用的位置,避免和路径。
笔画():画。你必须添加这个
函数来画一幅画,所以这必须放在最后。
无功icanvas = document.getelementbyid(icanvas );
var ICTx = icanvas.getcontext(2D);
Ictx.beginPath();
Ictx.moveTo(0,0);
Ictx.lineTo(300150);
(3150)ictx.lineto;
Ictx.closePath();
Ictx.stroke();
uff1a效应
需要注意的是,如果closepath放置在脑卒中
功能重要,它将不会被绘制成一个封闭的线,因为它已经结束之前,所以左边的直线不能绘制。
2。线式
LineCap:线端点样式,对接,圆形,方形。
LineJoin:两线相交的拐点
模式时,可
设置的最大长度在人字的时间拐点处。 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000
MiterLimet:如果斜接长度超过miterlimit值,角会显示线
连接型伞。
LineWidth:线宽
strokeStyle:线条颜色、梯度(定义渐变对象),图案。语境。strokeStyle =# 333 ;
无功icanvas = document.getelementbyid(icanvas );
var ICTx = icanvas.getcontext(2D);
Ictx.beginPath();
Ictx。strokeStyle =# 0000ff ;
Ictx。线宽= 20;
Ictx。线帽=圆;
Ictx.moveTo(10,10);
Ictx.lineTo(80);
Ictx.stroke();
(ICTx。调用); / /这里必须调用,或将是第一次在最后一节的基础,中风,将再次画一个黑色的线,共3条。
Ictx。strokeStyle =# 000000 ;
Ictx。线帽=对接;
Ictx。线宽= 10;
Ictx.moveTo(80,10);
Ictx.lineTo(10,80);
Ictx.stroke();
创建一个路径,closepath不成对出现,几乎从不介意两者之间,closepath用于
关闭的起始点和结束点的闭合路径。
三.绘制曲线
(X,Y,圆弧半径,startangle,EndAngle,逆时针):绘制曲线,曲线半径,半径startangle,EndAngle起始角和终止角,利用电弧(数学。π/ 180)*通过半径角度值和抽奖的方向。
北极(X1,Y1、X2,Y2,半径):绘制曲线的前两切线。
Ictx.beginPath();
Ictx.moveTo(20,20); / /创建一个起始点
Ictx.lineTo(100,20);/ /创建一条水平线
Ictx.arcTo(15020150,70,50) / /创建弧;
Ictx.lineTo(150120); / /创建一个垂直线
Ictx.stroke();
绘制曲线的起点和水平线的终点与第一点的连接点相切。结束点和曲线的第一个设置点到第二点连接点的切线,U3000 U3000
QuadraticCurveTo(x1,y1,x2,y2):两个贝塞尔曲线。(x1,y1)的
控制点坐标,最后的点的坐标(x2,y2)
BezierCurveTo(X1,Y1、X2,Y2,x,y):三贝塞尔曲线。(X1,Y1)的控制点1的坐标,(x2,y2)的控制点2的坐标系的坐标(x,y)在终点。
贝塞尔曲线在绘制一些非常平滑的曲线时非常有用。
4。绘制矩形并填充
矩形():创建一个矩形;
用(x,y,宽度,高度):绘制填充矩形:(x,y)的起点,宽度,高度的矩形宽
StrokeRect():画一个矩形线框
ClearRect():
删除矩形。
Ictx。fillStyle =# 0000ff ; / /设置填充颜色
(2020150100)ictx.fillrect;
(18020100100)ictx.strokerect;
5。刷
属性 填充颜色:设置填充颜色,梯度或模式(模式);
strokeStyle:颜色、渐变、图案或刷
6。画一个影子
ShadowColor:Shadow Yanse
ShadowBlur:模糊层次
ShadowOffsetX:阴影的水平距离
ShadowOffsetY:阴影的垂直距离
Ictx shadowblur = 20;
Ictx。shadowcolor =# 456 ;
Ictx。shadowoffsetx = - 10;
Ictx.shadowOffsetY=30; / / the first set the shadow you draw a rectangle
Ictx。fillStyle =# 108997 ;
ictx.fillrect(2020100,80);
Ictx.stroke();
7。逐步改变
CreateLinearGradient(x1,y1,x2,y2):绘制线性渐变,(x1,y1)是渐变的起始点。(x2,y2)是渐变的终点,和不同的位置可以水平或垂直梯度。
CreateRadialGradient(X1,Y1,Y2,X2,R1,R2):径向渐变:(x1,y1)是逐渐变化的出发点,R1为半径,(x2,y1)是渐变的终点,终点是半径。
所有这两种梯度都需要使用。
AddColorStop(停、颜色)设置渐变过程,停是0到1的值。
VaR GRD = ictx.createlineargradient(00170,0);
Grd.addColorStop(0,# 000 );
grd.addcolorstop(0.5,# 378923 );
Grd.addColorStop(1,# DDD );
Ictx。fillStyle=GRD; / /这个梯度是用来传递一个值对象的填充颜色
(2020150100)ictx.fillrect;
VaR GRD = ictx.createradialgradient(30022515250225100);
Grd.addColorStop(0,# 345 );
Grd.addColorStop(1,# FFF);
Ictx。fillStyle=GRD;
(200150150100)ictx.fillrect;
8。填充背景
CreatePattern(形象,重复| repeat-x |垂直重复|不重复):图像是一个
图片对象,与下列
参数画面的重复。
9。其他相关的API
填充():填充当前路径。
IsPointInPath():ictx.ispointinpath(x,y);确定这个点是否位于当前路径
方法:清除画布的油画,icanvas.height,宽度icanvas.width;然后使用clearRect();
修改画布的宽度:icanvas。宽度= '200;对icanvas宽度= 300美元的方法。
globalAlpha:是透明的,只能是一些0 ~ 1。如果透明度不一样,可以在绘制前重置。
ToDataURL:icanvas.todataurl(
类型,encoderoptions),这个函数返回一个图像Base64 URI的参数是可选的,可以设置图片类型如图像/ JPEG图像/ WebP,
默认的是图像/格式;encoderoptions是0 ~ 1,用来设置图像JPEG,图像/ WebP图像质量,其他格式类型设置此参数无效。
10。切割
夹():一种从画布上切割任意形状和大小的画布,然后所有的绘图都局限于裁剪
区域。这种方法通常用于绘制矩形、圆形和其他路径。在这些方法之后,图像被切割,然后,它必须被画在切割的画布上。
Ictx.arc(100100,50,(数学。π/ 180)* 0(数学。π/ 180)* 360,真的);
Ictx.stroke();
Ictx.clip();
Ictx。fillStyle = 绿色;
(00150100)ictx.fillrect;
如果你想操纵外部画布,在剪切之前
保存它()函数,然后使用
恢复()函数在剪切后恢复到以前保存的状态,但是中间
操作不会消失。
以上是本文的全部内容,希望能对您有所帮助,希望大家多多
支持。