返回介绍

Path

发布于 2024-11-08 22:56:42 字数 19777 浏览 0 评论 0 收藏 0

fabric.Path

构造函数: new Path()

父类: fabric.Object

类属性成员:

async(boolean):static 成员,指明该类型的实例都是异步操作,默认值为 true。
ATTRIBUTE_NAMES:static 成员,转换 SVG 元素时产生的属性名称列表(在 fabric.Line.fromElement 函数中使用)。
angle(Number):Object 的旋转角度(以度为单位)。
backgroundColor(String):Object 的背景颜色,只有赋值字符串时才起作用。
borderColor(String):Object 为激活状态时,控制器的边框颜色。默认值为:rgba(102,153,255,0.75)。
borderOpacityWhenMoving(Number):当 Object 处于激活或移动状态时,控制器边框的透明度。默认值为:0.4。
borderScaleFactor(Number):Object 控制器四边的缩放因子,默认为 1。
centeredRotation(boolean):当属性为 true 时,通过控制器进行旋转的时候将以 Object 的中点为原点进行旋转,默认 true。向下兼容提示:该属性替代了旧版本的 centerTransform(boolean) 属性。
centeredScaling(boolean):当属性为 true 时,将以 Object 的中点作为缩放的原点,默认 false。向下兼容提示:该属性替代了旧版本的 centerTransform(boolean) 属性。
clipTo(Function):该属性是一个函数,决定了如何对 Object 进行裁剪(Context 作为函数的和一个参数传入)。要注意 Context 的原点是 Object 的中点(而不是左上角的那个点)。
cornerColor(String):Object 控制器(激活的时候)四角的颜色,默认值为:rgba(102,153,255,0.5)。
cornerSize(Number):Object 控制器四角的大小,以像素为单位,默认值为:12。
evented(boolean):当属性为 false 时,该 Object 将不会成为事件的目标,默认 true。所有的事件传递都会经过该属性。该属性是在 1.3.4 版本之后引入的。
fill(String):Object 填充的颜色,默认值为:rgb(0,0,0)。
fillRule(String):该属性用于填充 Object,只能接受值"nonzero",默认值也是"nonzero"。向下兼容提示:该属性在 1.4.2 版本之前都是用 fabric.Object.globalCompositeOperation 函数替代的。
flipX(boolean):当属性为 true 时,Object 将以水平翻转的样式被渲染。默认为 false。
flipY(boolean):当属性为 true 时,Object 将以垂直翻转的样式被演染。默认为 false。
globalCompositeOperation(String):为 Canvas 的 globalCompositeRule 设置的混合规则。默认值为:"source-over"。
hasBorders(boolean):当属性为 false 时,Object 的控制器边框将不会被渲染。默认值为:true。
hasControls(boolean):当属性为 false 时,Object 的控制器将不会显示,与此同时将无法操作 Object。默认值为 true。
hasRotatingPoint(boolean):当属性为 false 时,Object 的控制器旋转点将不会显示和被选中。默认为 true。
hoverCursor(String):当鼠标覆盖在该 Object 上时使用的鼠标样式。默认为 null。
includeDefaultValues(boolean):当设置为 false 时,Object 序列化过程中将不会包含其默认值。默认为 true。
lockMovementX(boolean):当设置为 true,Object 的水平移动将被锁定。默认值为 false。
lockMovementY(boolean):当设置为 true,Object 的垂直移动将被锁定。默认值为 false。
lockRotation(boolean):当设置为 true,Object 的旋转将被锁定。默认值为 false。
lockScalingFlip(boolean):当设置为 true,Object 将通过缩放到负值从而实现被翻转。默认值为 false。
lockScalingX(boolean):当设置为 true,Object 水平方向将无法被缩放。默认值为 false。
lockScalingY(boolean):当设置为 true,Object 垂直方向将无法被缩放。默认值为 false。
lockUniScaling(boolean):当设置为 true,Object 将无法被锁定比例进行缩放。默认值为 false。
minScaleLimit(Number):Object 缩放比例最小值,默认值为 0.01。
minX(Number):所有点当中 X 坐标的最小值,对于偏移的点是必需值,默认为 0。
minY(Number):所有点当中 Y 坐标的最小值,对于偏移的点是必需值,默认为 0。
oCoords(Object):Object 包含的控制器的坐标,默认值为 null。
opacity(Number):Object 的透明度,默认值为 1。
originX(String):Object 平移的水平起始点,可选值有"left"|"right"|"center"默为值为"left"。查阅 http://jsfiddle.net/1ow02gea/40/ 获知 originX 和 orginY 是如何影响 Group 中的 Object。
originY(String):Object 平移的垂直起始点,可选值有"top"|"bottom"|"center"默为值为"top"。查阅 http://jsfiddle.net/1ow02gea/40/ 获知 originX 和 orginY 是如何影响 Group 中的 Object。
padding(Number):Object 与其控制器边框中间的空白间距,以像素为单位,默认为 0。
path(Array):路径点的数组,默认为 null。
perPixelTargetFind(boolean):当设置为 true 时,canvas 上的 object 是基于像素进行检索的,而不是基于边框盒模型。默认为 false。
rotatingPointOffset(Number):Object 控制器旋转点的偏移量(当 hasRotatingPoint 设置为 true 时才有效),默认值为 40。
scaleX(Number):Object 水平方向的缩放因子。默认值为 1。
scaleY(Number):Object 垂直方向的缩放因子,默认值为 1。
selectable(boolean):当设置为 false 时,Object 无法被选中编辑(无论是以像素点为基础或以组为基础),但是相应的事件仍然会触发。默认值为 true。
shadow(fabric.Shadow):当前图形的 Shadow 对象,默认为 null。
stateProperties(Array):属性列表,用于检查 Object 的状态是否改变(fabric.Object.hasChanged)。目的在于实现历史状态的 redo 和 undo 操作。
stroke(String):当该属性有定义的时候,Object 将通过该属性定义的线条以及颜色进行渲染。默认为 null。
strokeDashArray(Array):用于装载 Object 线条的破折号样式的数组(stroke 属性必须已被定义)。
strokeLineCap(String):Object 线条的终端样式,可选值有"butt"|"round"|"square",默认值为"butt"。
strokeLineJoin(String):Object 线条连接处边角的样式,可选值有"bevil"|"round"|"miter",默认值为"miter"。
strokeMiterLimit(Number):Object 线条链接处的最大斜角长度(当 strokeLineJoin 值设置为 miter 时起作用),默认值为 10。
strokeWidth(Number):用于渲染 Object 的线条的宽度,默认值为 1。
transformMatrix(Array):变换矩阵(类似于 SVG 的变换矩阵)。
transparentCorners(boolean):当设置为 true 时,Object 的控制器边缘内部将会被渲染为透明,默认值为 true。
type(String):Object 的类型,可选值为"rect"|"circel"|"path"等,默认值为"object"。要注意的是,这个属性为只读,不能进行修改。如果你修改这个属性的值,Fabric 框架特定部分(比如 JSON 加载)将会不正常。
visible(boolean):当设置为 false,Object 将不会在 Canvas 上被渲染。默认值为 true。

类函数成员:

static fabric.Path fromElement(SVGElement, Object opt):通过指定的 SVG 元素返回 fabric.Path 实例。第一个参数是指定的 SVG 元素。
static fabric.Path fromObject(Object):通过指定的 Object 返回对应的 fabric.Path 实例。
void _renderControls(CanvasRenderingContext2D, boolean opt):渲染 Object 的控制器以及边框。第一个参数是渲染的 Context;第二个参数若设置为 true,则相关的 Context 则不会被变换。
void _restoreCompositeOperation(CanvasRenderingContext2D):在 Object 变更渲染之后,保存之前的保存的画布操作(globalCompositeOperation)。参数则是指定在其上染上的 Context。
void _setupCompositeOperation(CanvasRenderingContext2D):为指定的 Object 设置一个画布全局操作(globalCompositeOperation)。特定的 Object 自定义操作可以通过设置 globalCompositeOperation 属性进行设置。参数则是指定在其上染上的 Context。
void adjustPosition(String):参数可选值为"left"|"center"|"right"。
abric.Object animate(String | Object, Number | Object):对指定的属性进行动画变换。第一个参数是用于动画的属性(Object 类型可指定多个);当参数一为 String 时,参数二为变换的终点值,否则为对象选项。具体可参照: http://fabricjs.com/fabric-intro-part-2/#animation。
fabric.Object bringForward(boolean opt):将绘制的 Object 在栈中位置向上移动。当参数设置为 true 时,将 Object 置于下一个相交的 Object 之上。
fabric.Object bringToFront():将 Ojbect 移到绘图栈的最顶端。
fabric.Ojbect center():在 Canvas 的水平和垂直方向上居中 Object。居中操作之后,你需要调用 Object 的 setCoords() 函数来更新控制区。
fabric.Object centerH():在 Canavs 的水平方向上居中 Object。之后,你需要调用 Object 的 setCoords() 函数来更新控制区。
fabric.Object centerV():在 Canvas 的垂直方向上居中 Object。之后,你需要调用 Object 的 setCoords() 函数来更新控制区。
fabric.Object clone(Function, Array):深度复制 Object。第一个参数是回调函数,该回调的第一个参数是复制出来的 Object;第二个参数是一个数组,装载着你想要添加到输出的所有属性。
fabric.Object cloneAsImage(Function):从 Object 创建出一个新的 fabric.Image 实例。参数是一个回调函数,该回调的第一个参数是复制出来的 fabric.Image 实例。
Number complexity():返回一个实例的复杂度。(译者注:该函数估计会被各子类重载,因为这个函数在 Object 类中直接返回 0)。
boolean containsPoint(fabric.Point):检查指定的点是否包含在 Object 中。
fabric.Object drawBorders(CanvasRenderingContext2D):绘制 Object 盒模型的四周,要求有以下公共属性:width、height、padding、borderColor。
fabric.Object drawControls(CanvasRenderingContext2D):绘制 Object 盒模型的控制器,要求有以下公共属性:width、height、conerSize、padding。
fabric.Object fxstraighten(Object):和 fabric.Object.prototype.straighten() 的作用一样,只不过带了动画效果。参数是一个 Object,里面有两个元素 onComplete 和 onChange,分别是两个回调函数。onComplete 在动画结束之后调用,onChange 在动画的每一阶段分别调用。
Any get(String):最基本的 getter 函数,参数为想要获取的属性名。
Number getAngle():获得 Object 的旋转角度,以“度”为单位。
Object getBoundingRect():返回 Object 的边框矩形坐标。返回值是一个 Object 类型,其中包括了 left、top、width、height 四个元素。
Number getBoundingRectHeight():返回 Object 的边框矩形的高度。(版本 1.0.4 开始已废弃)
Number getBoundingRectWidth():返回 Object 的边框矩形的宽度。(版本 1.0.4 开始已废弃)
fabric.Point getCenterPoint():返回 Object 的真实中点坐标。
Function getClipTo():获得 Object 的裁剪函数。
String getFill():获得 Object 的填充颜色。
boolean getFlipX():获得 Object 的 flipX 属性。
boolean getFlipY():获得 Object 的 flipY 属性。
Number getHeight():获得 Object 的高度。
Number getLeft():获得 Object 左边的位置,即 X 坐标,以像素为单位。
Object getLocalPointer(Event, Object opt):获取一个点在 Object 上的本地坐标。注意:第二个参数可选。这个函数默认情况下是获取当前鼠标所在点的本地坐标,如果指定了第二个参数,则该函数将获取第二个参数指定的点的本地坐标。返回值和第二个函数都是 Object,包函 x、y 两个成员。
Number getOpacity():获取 Object 的透明度,在 0 到 1 之间的数字。
String getOriginX():获取 Object 的原点 X 值。
String getOriginY():获取 Object 的原点 Y 值。
fabric.Point getPointByOrigin(String, String):如果 Object 有不同的原点,该函数可获得 Object 的原点坐标。第一个参数代表 originX,可选值为:"left"、"center"、"right";第二个参数代表 originY,可选值为:"top"、"center"、"bottom"。
Number getScaleX():获取 Object 的 scaleX 属性值。
Number getScaleY():获取 Object 的 scaleY 属性值。
Object getShadow():获取 Object 的阴影,返回阴影实例。(译者注:不清楚为啥文档写的是返回 Object 而不是 fabric.Shadow)。
String getStroke():获取 Object 的 stroke 属性值。
Number getStrokeWidth():获取 Object 的笔划宽度。
String getSvgStyles():获取 svg 输出的样式字符串。
String getSvgTransform():获取 svg 输出的变换字符串。
String getSvgTransformMatrix():从单一元素的变换矩阵中返回 svg 输出的变换字符串。
Number getTop():获得 Object 的顶部位置,即 Y 坐标,以像素为单位。
Array getTransformMatrix():获得 Object 的变换矩阵,即 transformMatrix 属性值。
boolean getViewportTransform():在可能的情况下,获取 Object 的视口变换。(译者注:源码中返回的是数组,不知道为啥文档中写的是返回 boolean)。
boolean getVisible():获取 Object 是否可见。
Number getWidth():获取 Object 的宽度。
boolean hasStateChanged():当任一个 Object 的状态属性发生变化是,该函数返回 true。
fabric.Path initialize(Object):构造函数,参数是要初始化的属性值。
boolean intersectsWithObject(fabric.Object):探测该 Object 是否与指定的 Object 有交集。
boolean intersectsWithRect(Object, Object):探测该 Object 是否与指定的矩型有交集。第一个参数是矩形左上角的点;第二个参数是矩形右上角的点。
boolean isContainedWithinObject(fabric.Object):探测该 Object 是否完全包含在另一个指定的 Object 中。
boolean isContainedWithinRect(Object, Object):探测该 Object 是否完全包含在指定的矩形中。第一个参数是矩形左上角的点;第二个参数是矩形右上角的点。
boolean isControlVisible(String):当指定的控制器可见是返回 true,否测返回 false。参数为控制器的名称,可选值有:"tl"、"tr"、"bl"、"br"、"ml"、"mt"、"mr"、"mb"、"mtr"。
boolean isType(String):指定的类型和当前 Object 类型相同时,则返回 true。
fabric.Object moveTo(Number):将 Object 移至绘制栈的指定层。
fabric.Object remove():将 Object 从 Canvas 上移除。
render(CanvasRenderingContext2D, boolean opt):在指定的 Context 上渲染 Object。第一个参数是将要渲染的 Object;第二个参数为 true 时,Context 将不会进行变换。
fabric.Object saveState(Object opt):保存 Object 的状态。参数是一个 Object,当状态保存过程中需要额外添加到 Object 中的状态属性。
fabric.Object scale(Number):缩放 Object,X 和 Y 轴方向上等值。参数即是缩放因子。
fabric.Object scaleToHeight(Number):将 Object 的高度缩放到指定值。考虑到盒模型,最好是使用 scale 进行 x、y 轴等比缩放。
fabric.Object scaleToWidth(Number):将 Object 的宽度缩放到指定值。考虑到盒模型,最好是使用 scale 进行 x、y 轴等比缩放。
fabric.Object sendBackwards(boolean):将 Object 在绘制栈中向下移一层。当参数为 true 时,将 Object 移到下一个与之相交的 Object 之后。
fabric.Object sendToBack():将 Object 移至绘制栈的最底部。
fabric.Object set(String | Object, Object | Function):为指定的属性设置值。当设置位置或维度(与 left、top、scale、angle 等相关联)的属性时,set 函数 Object 的边框和控制器的位置。如果你要将它们也进行更新,需要调用 setCoord() 函数。第一个参数指定属性名或 Object,为 Object 时函数将会遍历该 Object 的键值对;第二个参数指定属性值或 Function,为 Function 时属性值将会作为参数传放,并返回一个新值。
fabric.Object setAngle(Number):设置 Object 的角度,以“度”为单位。
fabric.Object setClipTo(Function):设置 Object 的裁剪函数,即 clipTo 属性。
fabric.Object setColor(String):设置实例的颜色(Color 是 fill 属性的别名)。
fabric.Object setControlsVisibility(Object opt):设置 fabric.Object 控制器的显示/隐藏状态。参数是一个要选的 Object,可选成员如下所示:
bl: boolean 类型,为 true 则 bottom-left 控制器可用,false 则不可用。
br: boolean 类型,为 true 则 bottom-right 控制器可用,false 则不可用。
mb: boolean 类型,为 true 则 middle-bottom 控制器可用,false 则不可用。
ml: boolean 类型,为 true 则 middle-left 控制器可用,false 则不可用。
mr: boolean 类型,为 true 则 middle-right 控制器可用,false 则不可用。
mt: boolean 类型,为 true 则 middle-top 控制器可用,false 则不可用。
tl: boolean 类型,为 true 则 top-left 控制器可用,false 则不可用。
tr: boolean 类型,为 true 则 top-right 控制器可用,false 则不可用。
mtr: boolean 类型,为 true 则 middle-top-rotate 控制器可用,false 则不可用。
fabric.Object setControlVisible(String, boolean):设置指定的控制器显示/隐藏状态。第一个参数是指定的控制器名,可选值有'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr';第二个参数为 true 则指定的控制器可用,否则不可用。
fabric.Object setCoords():以当前的角度、宽高为基准,设置四角的的位置。可参考: https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords。
fabric.Object setFill(String):设置 Object 的填充颜色。参数示例:rgb(0,0,0)。
fabric.Object setFlipX(boolean):设置 Object 的 flipX 属性值。
fabric.Object setFlipY(boolean):设置 Object 的 flipY 属性值。
fabric.Object setGradient(String, Object):设置(填充或画笔)的渐变色。无法向后兼容提示:在 v1.1.0 之前,该函数被命名为 setGradientFill。第一个参数可选值为"stroke"或"fill";第二个参数为 Object,可选属性如下:

属性名类型是否可选默认值说明
typeString 渐变类型,"linear"或"radial"
x1Number0起始点 x 坐标
y1Number0起始点 y 坐标
x2Number0终点 x 坐标
y2Number0终点 y 坐标
r1Number0起始点半径(仅在径向渐变时生效)
r2Number0终止点半径(仅在径向渐变时生效)
colorStopsObject 终止色,示例: {0: 'ff0000', 1: '000000'}

示例 1:

object.setGradient('fill', {
  type: 'linear',
  x1: -object.width / 2,
  y1: 0,
  x2: object.width / 2,
  y2: 0,
  colorStops: {
    0: 'red',
    0.5: '#005555',
    1: 'rgba(0,0,255,0.5)'
  }
});
canvas.renderAll();

示例 2:

object.setGradient('fill', {
  type: 'radial',
  x1: 0,
  y1: 0,
  x2: 0,
  y2: 0,
  r1: object.width / 2,
  r2: 10,
  colorStops: {
    0: 'red',
    0.5: '#005555',
    1: 'rgba(0,0,255,0.5)'
  }
});
canvas.renderAll();

fabric.Object setLeft(Number):设置 Object 的左边距,以像素为单位。
fabric.Object setOpacity(Number):设置 Object 的透明度,参数范围[0-1]。
void setOptions(Object opt):通过参数设置 Object 的属性。
fabric.Object setOriginX(String):设置 originX 属性值,可选值为:"left", "right", "center"。
fabric.Object setOriginY(String):设置 originY 属性值,可选值为:"top", "bottom", "center"。
fabric.Object setPatternFill(Object):设置 Object 的样式填充。参数的可选成员如下:

参数名类型是否可选默认值说明
sourceStringHTMLImageElement 样式来源
repeatString"repeat"指定是否重复样式填充,可选值有:"repeat"、"repeat-x"、"repeat-y"、"no-repeat"
offsetXNumber0相对于左上角的水平偏移量
offsetYNumber0相对于右上角的垂直偏移量

示例:

fabric.util.loadImage('http://fabricjs.com/assets/escheresque_ste.png', function(img) {
  object.setPatternFill({
    source: img,
    repeat: 'repeat'
  });
  canvas.renderAll();
});

void setPositionByOrigin(fabric.Point, String, String):根据 Object 的原点设置 Object 的值置。第一个参数指定的 Object 的新位置;第二个参数指定 Object 的水平原点,可选值有:'left', 'center' or 'right';第三个参数指定 Object 的垂直原点,可选值有:'top', 'center' or 'bottom'。
fabric.Object setScaleX(Number):设置 Object 的 scaleX 属性值。
fabric.Object setScaleY(Number):设置 Object 的 scaleY 属性值。
fabric.Object setShadow(Object | String opt):设置 Object 的阴影。当参数为 String 类型时,可以如下格式设置:"2px 2px 10px rgba(0,0,0,0.2)";当参数为 Object 类型时,可选成员如下:

属性名类型是否可选默认值说明
colorStringrgb(0,0,0)阴影颜色
blurNumber0阴影模糊度
offsetXNumber0水平偏移量
offsetYNumber0垂直偏移量

示例 1:

object.setShadow('2px 2px 10px rgba(0,0,0,0.2)');
canvas.renderAll();
示例 2:
object.setShadow({
  color: 'red',
  blur: 10,
  offsetX: 20,
  offsetY: 20
});
canvas.renderAll();

fabric.Object setSourcePath(String):设置 Object 的源路径。译者注:不清楚这里的 source path 是指啥。参数即为要设置的 sourcePath 属性值。
fabric.Object setStroke(String):设置 Object 的画笔。
fabric.Object setStrokeWidth(Number):设置 Object 的画笔宽度。
fabric.Object setTop(Number):设置 Object 的 top 属性,以像素为单位。
fabric.Object setTransformMatrix(Array):设置 Object 的 transformMatrix 属性。
fabric.Object setupState():建立 Object 的状态。
fabric.Object setVisible(boolean):设置 Object 的 visible 属性。
fabric.Object straighten():拉直 Object(将 Object 从前当角度旋转到 0、90、180、270 度,取决于哪个角度比较靠近)。
Object toDatalessObject(Array opt):返回代表该实例的无数据 Object。参数可选,该数组可指定任意你想添加到输出的属性。
String ToDataURL(Object):将 Object 转换成类 URL 的字符串。参数可选成员如下:

属性名类型是否可选默认值说明
formatStringpng输出图片的格式,可选"jpeg"或"png"
qualityNumber1输出图片质量,[0-1],jpeg 格式生效
multiplierNumber1缩放因子
leftNumber 裁剪区域左偏移量,v1.2.14 引入
topNumber 裁剪区域顶部偏移量,v1.2.14 引入
widthNumber 裁剪区域宽度,v1.2.14 引入
heightNumber 裁剪区域高度,v1.2.14 引入

fabric.Object toggle(String):切换指定的属性,true 变为 false,false 变为 true。
Object toJSON(Array opt):返回一个代表当前实例的 JSON 对象。参数可选,该数组可指定任意你想添加到输出的属性。
fabric.Point toLocalPoint(fabric.Point, originX, originY):返回指定的点在当前 Object 的本地坐标。第一个参数指定一个需要转换的全局坐标;第二个参数指定了水平原点,可选值有'left', 'center' or 'right';第三个参数指定了垂直原点,可选值有'top', 'center' or 'bottom'。
Object toObject(Array opt):返回一个代表当前实例的 Object 对象。参数可选,该数组可指定任意你想添加到输出的属性。
String toString():返回一个代表当前实例的字符串。
String toSVG(Function opt):返回代表当前实例的 SVG 字符串。参数是一个可选的回调函数,用于更进一步转换 SVG 对象。
void transform(CanvasRenderingContext2D, boolean):当渲染 Object 时对 Context 进行变换。当第二个参数为 true 时,context 被变换到 Object 的左上角,这个用在渲染文本的时候。
fabric.Point translateToCenterPoint(fabric.Point, String, String):将指定的坐标点从原点平移到中点坐标(基于 Object 的维度)。第一个参数的 X/Y 坐标分别对应第二和第三个参数;第二个参数即水平原点,可选值为'left', 'center' or 'right';第三个参数即垂直原点,可选值为'top', 'center' or 'bottom'。
fabric.Point translateToOriginPoint(fabric.Point, String, String):将指定的坐标点从中点坐标平移到原点(基于 Object 的维度)。第一个参数的 X/Y 坐标分别对应第二和第三个参数;第二个参数即水平原点,可选值为'left', 'center' or 'right';第三个参数即垂直原点,可选值为'top', 'center' or 'bottom'。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文