深度画布调整属性设置

This commit is contained in:
lzp
2026-03-26 10:53:01 +08:00
parent e03bb2486c
commit 164ac3789f
10 changed files with 259 additions and 177 deletions

View File

@@ -3,7 +3,7 @@ import { fabric } from 'fabric-with-all'
import { createId } from '../../tools/tools'
import { exportObjectsToImage, exportObjectToThumbnail } from '../tools/exportMethod'
import { OperationType, BlendMode } from '../tools/layerHelper'
import { getArrowPath, cloneObjects, getStarArr } from '../tools/canvasMethod'
import { getArrowPath, getLinePath, cloneObjects, getStarArr } from '../tools/canvasMethod'
export class LayerManager {
stateManager: any
@@ -274,25 +274,27 @@ export class LayerManager {
}
/** 创建直线图层 */
async createLineLayer(options?: any, isRecord = true, isActive = true) {
const line = [options?.x1 || 0, options?.y1 || 0, options?.x2 || 100, options?.y2 || 0]
delete options.x1
delete options.y1
delete options.x2
delete options.y2
const lineObject = new fabric.Line(line, {
stroke: 'black', // 线条颜色
strokeWidth: 2, // 线条粗细
const width = options?.width || 100
const height = options?.height || 2
delete options.width
delete options.height
const arrowObject = new fabric.Path(getLinePath(width, height), {
stroke: '#000', // 只设置边框颜色
strokeWidth: 2, // 边框宽度
fill: 'transparent', // 不填充
strokeLineCap: 'round',
strokeLineJoin: 'round',
...(options || {}),
info: {
id: createId("line"),
name: '直线图层',
...(options?.info || {}),
}
})
this.setLayerPosition(lineObject, options)
await this.canvasManager.add(lineObject, isRecord)
if (isActive) this.setActiveID(lineObject.info.id)
return lineObject
});
this.setLayerPosition(arrowObject, options)
await this.canvasManager.add(arrowObject, isRecord)
if (isActive) this.setActiveID(arrowObject.info.id)
return arrowObject
}
/** 创建椭圆图层 */
async createEllipseLayer(options?: any, isRecord = true, isActive = true) {
@@ -353,18 +355,18 @@ export class LayerManager {
/** 创建箭头图层 */
async createArrowLayer(options?: any, isRecord = true, isActive = true) {
const width = options?.width || 100
const height = options?.height || 10
const strokeWidth = options?.strokeWidth || 4
delete options.width
delete options.height
const arrowObject = new fabric.Path(getArrowPath(width, height), {
delete options.strokeWidth
const arrowObject = new fabric.Path(getArrowPath(width, strokeWidth), {
stroke: '#000', // 只设置边框颜色
strokeWidth: 3, // 边框宽度
strokeWidth, // 边框宽度
fill: 'transparent', // 不填充
strokeLineCap: 'round',
strokeLineJoin: 'round',
...(options || {}),
info: {
id: createId("star"),
id: createId("arrow"),
name: '箭头图层',
...(options?.info || {}),
}