HTML5画布常见API概述(二)——绘图api

HTML5画布常见API概述(二)——绘图api
画布可以画出许多奇妙的图案和美丽的效果。通过几个简单的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;

如果你想操纵外部画布,在剪切之前保存它()函数,然后使用恢复()函数在剪切后恢复到以前保存的状态,但是中间操作不会消失。

以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部