文档手册

Graphics

2024-07-18 12:25:31

 

 类图形

类图形表示 2D 图形基元。

在Sciter.JS图形可用:

  1. at <canvas> 元素,它表示其屏幕外缓冲区。

  2. element.paintXXXX(graphics) 支持所谓的即时模式绘画的方法中。

  3. 在构造函数中 new Image(painter(graphics)) 绘制图像图面。

类图形也是一个包含类的命名空间:

 性能:

lineCap

用于绘制线条(描边)端点的形状。

读写、字符串、以下之一

  •  “butt” - 默认值,

  •  “圆”,

  •  “正方形”

lineJoin

用于连接它们相交的两个线段的形状。

读写、字符串、以下之一

  •  “miter” - 默认值,

  •  “圆”,

  •  “斜角”

strokeStyle

 读写,任一

  • 颜色 - 颜色绘制笔触/线条;

  • string - 颜色或渐变的字符串表示;

  • 画笔 - 画笔(渐变、平铺图像等);

lineWidth

strokeWidth

读写、数字、行宽(以 CSS 像素为单位,又称 dips)。

fillStyle

 读写,任一

  • 颜色 - 要填充的颜色;

  • string - 颜色或渐变的字符串表示;

  • 画笔 - 画笔(渐变、平铺图像等);

font

读写,字符串,采用 CSS 字体属性格式

 方法:

setLineDash()

设置虚线的配置

graphics.setLineDash(n1,n2,...)

beginPath()

通过清空子路径列表来启动新路径。

graphics.beginPath()

moveTo()

graphics.moveTo(x, y)
graphics.moveTo(Point)

lineTo()

graphics.lineTo(x, y)
graphics.lineTo(Point)

quadraticCurveTo()

将二次贝塞尔曲线添加到当前子路径。

graphics.quadraticCurveTo(cpx, cpy, x, y)
graphics.quadraticCurveTo(cp:Point, pt:Point)

bezierCurveTo()

将三次贝塞尔曲线添加到当前子路径。

graphics.bezierCurveTo(p1x, cp1y, cp2x, cp2y, x, y)
graphics.bezierCurveTo(cp1:Point, cp2:Point, pt:Point)

arcTo()

使用给定的控制点和半径向当前子路径添加圆弧。如果指定参数需要,圆弧会自动通过一条直线连接到路径的最新点。

graphics.arcTo(x1, y1, x2, y2, radius)
graphics.arcTo(cp1:Point, cp2:Point, radius)

arc()

向当前子路径添加圆弧。

graphics.arc(x, y, radius, startAngle, endAngle [, anticlockwise])

ellipse()

graphics.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle [, anticlockwise])

rect()

graphics.rect(x, y, width, height)
graphics.rect(Rect)

closePath()

添加一条从当前点到当前子路径起点的直线。如果路径已关闭或只有一个点,则此函数不执行任何操作。

graphics.closePath()

stroke()

graphics.stroke()

 划线电流路径。

graphics.stroke(path)

给定 Path 对象的笔画。

fill()

graphics.fill()

 填充当前路径。

graphics.fill(path[,fillRule])

 填充给定的 Path 对象。

 fillRule 是以下项之一:

  • “nonzero” - 非零绕组规则。默认规则。

  • “偶数” - 偶数/奇数绕组规则。

strokeRect()

绘制一个矩形,该矩形根据当前 strokeStyle 和其他图形设置进行描边(轮廓)。

graphics.strokeRect(x,y,w,h)
graphics.strokeRect(Rect)

fillRect()

绘制一个根据当前 fillStyle 填充的矩形。

graphics.fillRect(x,y,w,h)
graphics.fillRect(Rect)

clearRect()

通过将矩形区域中的像素设置为透明黑色来擦除这些像素。

graphics.clearRect(x,y,w,h);
graphics.clearRect(Rect);

fillText()

在指定的坐标处绘制一个文本字符串,并使用当前 fillStyle 填充字符串的字符。

graphics.fillText(text,x,y,maxWidth)

提示

在动态更新或频繁绘制相同文本的情况下,最好创建/重用 Graphics.Text 并使用 graphics.draw() 方法绘制它。


save()

通过将当前状态推送到堆栈上来保存图形的整个状态。

graphics.save()

restore()

通过弹出绘图状态堆栈中的顶部条目来恢复最近保存的画布状态。

graphics.restore()

向当前变换矩阵添加水平和垂直缩放。

graphics.scale(x,y)

translate()

向当前转换矩阵添加平移。

graphics.translate(x,y)

rotate()

graphics.rotate(angle [,x,y])

向当前变换矩阵添加旋转。

 参数:

  • 角度,弧度数或角度;

  • x,y,如果给定,则定义旋转中心;

transform()

将当前变换乘以此方法的参数描述的矩阵。

graphics.transform(a,b,c,d,e,f)

setTransform()

重置(重写)对恒等矩阵的当前转换,然后调用此方法的参数描述的转换。

graphics.setTransform(a,b,c,d,e,f)

resetTransform()

重置(覆盖)对单位矩阵的当前转换。

graphics.resetTransform()

方法(具体Sciter.JS):

draw()

graphics.draw(path, {params})

绘制给定的路径对象,params 是一个具有以下条件的对象:

  • xy - 数字,目的地坐标;

  • fill 、可选、 "evenodd" | "nonzero" ,如果已定义,则通过当前填充画笔填充路径;

  • stroke 、可选、 true | false ,如果为 true - 通过当前描边画笔勾勒出路径;

graphics.draw(image, {params})

绘制图像对象,params 是一个具有以下特征的对象:

  • xy - 数字,目的地坐标;

  • widthheight - 可选,数字,目标框的尺寸;

  • srcXsrcY - 可选,整数,源框(精灵)的原点;

  • srcWidthsrcHeight - 可选,整数,源框(精灵)的维度;

  • opacity ,可选,0.0 ...1.0、不透明度(混合);

graphics.draw(text, {params})

绘制 Text 对象,params 是一个具有以下条件的对象:

  • xy - 数字,目的地坐标;

  • alignment :整数,1..9,定义 x/y 坐标的含义,请参阅 NUMPAD。5 - 文本中心,7 - 左/上角等。

  • fill :颜色,可选,如果定义的文本是用该颜色绘制的。如果省略,则按当前填充颜色。

pushLayer()

graphics.pushLayer(x,y,w,h[,opacity|filter])

将图层(剪辑)推送到带有可选不透明度或滤镜的矩形剪辑的图层堆栈上。

 参数:

  •  x,y,w,h - 矩形;

  • 不透明度 - 数字,范围 0.0 ...1.0 - 绘制具有不透明度的图层内容;

  • filter - 字符串,以 CSS 过滤器属性格式进行过滤器;

graphics.pushLayer(clipAreaName[,opacity | filter])

元素的局部剪辑,具有可选的不透明度。clipAreaName 是以下项之一:

  • "background-area" - 元素背景区域核算边界半径;

  • "border-box",

  • "padding-box",

  • "margin-box",

  • "content-box"

graphics.pushLayer(path [,opacity])

推送具有可选不透明度的路径剪辑图层。

graphics.pushLayer(mask:Image, useAlpha [,opacity] )

推送具有可选不透明度的图像蒙版剪辑图层。

如果 useAlpha 为 true,则 alpha 值用作掩码值。否则,非黑色像素将定义蒙版。

popLayer()

Pops 层由最新的 pushLayer() 创建。