📜  Fabric.js 椭圆类完整参考(1)

📅  最后修改于: 2023-12-03 15:30:43.817000             🧑  作者: Mango

Fabric.js 椭圆类完整参考

介绍

Fabric.js 是一个优秀的 HTML5 canvas 库,提供了丰富的 API,可以用来绘制图形、添加事件等等。其中,椭圆类是 Fabric.js 的一种图形类,用来绘制椭圆形。

本文将介绍 Fabric.js 椭圆类的基本使用方法,并详细列举每个属性和方法的作用及参数含义,以便程序员能够更方便的使用 Fabric.js。

基本用法
// 创建椭圆对象
var ellipse = new fabric.Ellipse({
  left: 100, // 椭圆左边距
  top: 100, // 椭圆上边距
  rx: 50, // 椭圆 X 半径
  ry: 70, // 椭圆 Y 半径
  fill: '#f00' // 填充色
});

// 将椭圆添加到 canvas 中
canvas.add(ellipse);
属性
● rx
  • 类型:Number
  • 默认值:0
  • 描述:椭圆 X 半径
● ry
  • 类型:Number
  • 默认值:0
  • 描述:椭圆 Y 半径
● fill
  • 类型:String
  • 默认值:'' (空字符串)
  • 描述:填充色。可以为颜色名称、十六进制颜色码、rgb()、rgba()、hsl() 或 hsla() 格式字符串。
● stroke
  • 类型:String
  • 默认值:'' (空字符串)
  • 描述:描边色。可以为颜色名称、十六进制颜色码、rgb()、rgba()、hsl() 或 hsla() 格式字符串。
● strokeWidth
  • 类型:Number
  • 默认值:1
  • 描述:描边宽度。单位为像素(px)。
● strokeLineCap
  • 类型:String
  • 默认值:'butt'
  • 描述:描边线帽样式。可选值为 'butt'、'round' 或 'square'。
● strokeLineJoin
  • 类型:String
  • 默认值:'miter'
  • 描述:描边线段连接样式。可选值为 'miter'、'round' 或 'bevel'。
● strokeMiterLimit
  • 类型:Number
  • 默认值:4
  • 描述:描边斜角长度。仅当 strokeLineJoin 为 'miter' 时有效。
● shadow
  • 类型:Object

  • 默认值:null

  • 描述:阴影效果配置。该配置对象包含 color、blur、offsetX 和 offsetY 四个属性。

    • color:阴影颜色。可以为颜色名称、十六进制颜色码、rgb()、rgba()、hsl() 或 hsla() 格式字符串。
    • blur:阴影模糊程度。单位为像素(px)。
    • offsetX:阴影 X 偏移量。单位为像素(px)。
    • offsetY:阴影 Y 偏移量。单位为像素(px)。
● originX
  • 类型:String
  • 默认值:'left'
  • 描述:椭圆 X 原点位置。可选值为 'left'、'right' 或 'center'。
● originY
  • 类型:String
  • 默认值:'top'
  • 描述:椭圆 Y 原点位置。可选值为 'top'、'bottom' 或 'center'。
● angle
  • 类型:Number
  • 默认值:0
  • 描述:椭圆旋转角度。单位为度数。
● flipX
  • 类型:Boolean
  • 默认值:false
  • 描述:椭圆在 X 轴上是否翻转。
● flipY
  • 类型:Boolean
  • 默认值:false
  • 描述:椭圆在 Y 轴上是否翻转。
● opacity
  • 类型:Number
  • 默认值:1
  • 描述:透明度。取值范围为 0 到 1,0 表示完全透明,1 表示不透明。
● selectable
  • 类型:Boolean
  • 默认值:true
  • 描述:是否可以被选中。
● hasControls
  • 类型:Boolean
  • 默认值:true
  • 描述:是否允许控制点操作。
● hasBorders
  • 类型:Boolean
  • 默认值:true
  • 描述:是否允许边框操作。
● hasRotatingPoint
  • 类型:Boolean
  • 默认值:true
  • 描述:是否允许旋转操作。
● lockMovementX
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止在 X 轴上移动。
● lockMovementY
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止在 Y 轴上移动。
● lockRotation
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止旋转。
● lockScalingX
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止在 X 轴上缩放。
● lockScalingY
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止在 Y 轴上缩放。
● lockUniScaling
  • 类型:Boolean
  • 默认值:false
  • 描述:是否禁止在等比缩放。
● perPixelTargetFind
  • 类型:Boolean
  • 默认值:false
  • 描述:是否启用像素级目标查找。
● targetFindTolerance
  • 类型:Number
  • 默认值:0
  • 描述:目标查找容差值。单位为像素(px)。
● hoverCursor
  • 类型:String
  • 默认值:'move'
  • 描述:鼠标悬浮时的光标样式。
● moveCursor
  • 类型:String
  • 默认值:'move'
  • 描述:鼠标移动时的光标样式。
● padding
  • 类型:Number
  • 默认值:0
  • 描述:内边距。用于定位控制点。
● borderColor
  • 类型:String
  • 默认值:'' (空字符串)
  • 描述:边框颜色。可以为颜色名称、十六进制颜色码、rgb()、rgba()、hsl() 或 hsla() 格式字符串。
● borderScaleFactor
  • 类型:Number
  • 默认值:1
  • 描述:缩放边框的比例因子。
● borderOpacityWhenMoving
  • 类型:Number
  • 默认值:0.4
  • 描述:移动时边框颜色的透明度。
● centeredRotation
  • 类型:Boolean
  • 默认值:true
  • 描述:是否以中心点旋转。如果为 true,则旋转将以中心点为基准。如果为 false,则旋转将以左上角为基准。
● centeredScaling
  • 类型:Boolean
  • 默认值:false
  • 描述:是否以中心点等比缩放。如果为 true,则等比缩放将以中心点为基准。如果为 false,则等比缩放将以左上角为基准。
● fillRule
  • 类型:String
  • 默认值:'nonzero'
  • 描述:填充规则。可选值为 'nonzero' 或 'evenodd'。
● globalCompositeOperation
  • 类型:String
  • 默认值:null
  • 描述:全局组合模式。可以为源图像与目标图像进行特定的组合,例如取交集、取并集、取补集等。
方法
● toObject()

将椭圆对象转换成 JSON 对象。

var json = ellipse.toObject();
● toSVG()

将椭圆对象转换成 SVG 字符串。

var svg = ellipse.toSVG();
● setWidth(value, options)

设置椭圆宽度。

  • 参数 value:宽度值。
  • 参数 options:配置对象。可包含 originX、strokeWidth、lockScalingX 和 lockScalingY 四个属性。用来设置椭圆 X 原点位置、描边宽度、是否禁止在 X 轴上、Y 轴上缩放。
ellipse.setWidth(100, {
  originX: 'center', // 设置 X 原点位置为中心
  strokeWidth: 3, // 设置描边宽度为 3px
  lockScalingX: true, // 禁止在 X 轴上缩放
  lockScalingY: false // 允许在 Y 轴上缩放
});
● setHeight(value, options)

设置椭圆高度。

  • 参数 value:高度值。
  • 参数 options:配置对象。可包含 originY、strokeWidth、lockScalingX 和 lockScalingY 四个属性。用来设置椭圆 Y 原点位置、描边宽度、是否禁止在 X 轴上、Y 轴上缩放。
ellipse.setHeight(150, {
  originY: 'bottom', // 设置 Y 原点位置为底部
  strokeWidth: 5, // 设置描边宽度为 5px
  lockScalingX: false, // 允许在 X 轴上缩放
  lockScalingY: true // 禁止在 Y 轴上缩放
});
● getBoundingRect()

获取椭圆的边框矩形。

var rect = ellipse.getBoundingRect();
● toClipPath()

转换成裁剪路径对象。

var clipPath = ellipse.toClipPath();
结束语

本文介绍了 Fabric.js 椭圆类的基本使用方法,并详细列举了每个属性和方法的作用及参数含义。希望能对工作中的程序员有所帮助。如有疑问或错误欢迎指正。