@meta2d/core 1.0.98 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/options.d.ts CHANGED
@@ -122,6 +122,7 @@ export interface Options {
122
122
  downloadBgTransparent?: boolean;
123
123
  themeOnlyCanvas?: boolean;
124
124
  linePresetStyle?: Pen;
125
+ unFill?: boolean;
125
126
  }
126
127
  export declare const defaultOptions: Options;
127
128
  export interface PenPlugin {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../packages/core/src/options.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,qDAAQ,CAAA;IACR,iDAAM,CAAA;AACR,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAsHD,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,UAAU,EACR,2EAA2E;IAC7E,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,QAAQ;IACtB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,uBAAuB;IACnC,WAAW,EAAE,SAAS;IACtB,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,MAAM;IACxB,SAAS,EAAE,uBAAuB;IAClC,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,WAAW,CAAC,QAAQ;IAC7B,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,OAAO;IACxB,QAAQ,EAAE,EAAE;IACZ,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE;QACd;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;QACD;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;KACF;IACD,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,KAAK;IAC3B,GAAG,EAAE,EAAE;IACP,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,EAAE;IACb,eAAe,EAAC,CAAC,WAAW,CAAC;IAC7B,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAC,IAAI;IAClB,aAAa,EAAC,EAAE;CACjB,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../packages/core/src/options.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,qDAAQ,CAAA;IACR,iDAAM,CAAA;AACR,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAuHD,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,UAAU,EACR,2EAA2E;IAC7E,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,QAAQ;IACtB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,uBAAuB;IACnC,WAAW,EAAE,SAAS;IACtB,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,MAAM;IACxB,SAAS,EAAE,uBAAuB;IAClC,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,WAAW,CAAC,QAAQ;IAC7B,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,OAAO;IACxB,QAAQ,EAAE,EAAE;IACZ,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE;QACd;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;QACD;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;KACF;IACD,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,KAAK;IAC3B,GAAG,EAAE,EAAE;IACP,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,EAAE;IACb,eAAe,EAAC,CAAC,WAAW,CAAC;IAC7B,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAC,IAAI;IAClB,aAAa,EAAC,EAAE;CACjB,CAAC"}
@@ -222,10 +222,11 @@ export interface Pen extends Rect {
222
222
  lineAnimateDash?: number[] | string;
223
223
  lineAnimateDashOffset?: number;
224
224
  lineAnimateElementCount?: number;
225
- lineAnimateType?: LineAnimateType;
225
+ lineAnimateType?: LineAnimateType | LineAnimateType[];
226
226
  lineAnimateTargetType?: lineAnimateTargetType;
227
227
  lineAnimateElementWidth?: number;
228
228
  lineAnimateElementHeight?: number;
229
+ lineAnimateLoopMode?: boolean;
229
230
  animateName?: string;
230
231
  frames?: Pen[];
231
232
  animateList?: Pen[][];
@@ -321,6 +322,7 @@ export interface Pen extends Rect {
321
322
  formType?: string;
322
323
  className?: string;
323
324
  styles?: any;
325
+ hoverCursor?: string;
324
326
  roles?: string[];
325
327
  calculative?: {
326
328
  x?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,qCAAI,CAAA;IACJ,qCAAI,CAAA;AACN,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,yCAAI,CAAA;IACJ,uDAAW,CAAA;IACX,uDAAW,CAAA;IACX,yDAAY,CAAA;IACZ,iEAAgB,CAAA;IAChB,iBAAiB;IACjB,gDAAY,CAAA;AACd,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iDAAO,CAAA;IACP,uCAAE,CAAA;IACF,yCAAG,CAAA;AACL,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uCAAI,CAAA;IACJ,2CAAM,CAAA;IACN,2CAAM,CAAA;AACR,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,oBAAoB;AACpB,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,iEAAkB,CAAA;IAClB,uEAAiB,CAAA;IACjB,yDAAU,CAAA;IACV,2DAAW,CAAA,CAAC,OAAO;AACrB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,qBAAqB;AACrB,gBAAgB;AAChB,wBAAwB;AACxB,sBAAsB;AACtB,iBAAiB;AACjB,IAAI;AAEJ,wBAAwB;AACxB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,WAAW;IACX,YAAY;IACZ,UAAU;IACV,SAAS;IACT,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,cAAc;IACd,YAAY;IACZ,UAAU;IACV,aAAa;IACb,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY;IACZ,cAAc;IACd,eAAe;IACf,aAAa;IACb,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,4BAA4B,GAAI,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAoB5M,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,yDAAM,CAAA;IACN,uDAAK,CAAA;IACL,mDAAG,CAAA;IACH,uDAAK,CAAA;IACL,+DAAS,CAAA;IACT,yDAAM,CAAA,CAAC,QAAQ;AACjB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,mEAAK,CAAA;IACL,iEAAI,CAAA;IACJ,+DAAG,CAAA;IACH,uEAAO,CAAA,CAAC,OAAO;AACjB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAimBD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK;IACL,QAAQ;IACR,OAAO;IACP,SAAS;IACT,YAAY;IACZ,iBAAiB;IACjB,KAAK;CACN,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO;IACP,UAAU;IACV,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,SAAS;CACV,CAAA;AAED,WAAW;AACX,MAAM,CAAC,MAAM,WAAW,GAAgB,IAAI,GAAG,CAAC;IAC9C,cAAc;IACd,YAAY;IACZ,aAAa;IACb,cAAc;IACd,YAAY;IACZ,eAAe;IACf,UAAU;IACV,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,UAAU;IACV,YAAY;IACZ,uBAAuB;IACvB,qBAAqB;IACrB,mBAAmB;IACnB,OAAO;IACP,YAAY;IACZ,aAAa;IACb,WAAW;IACX,QAAQ;IACR,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,cAAc;IACd,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,eAAe;IACf,YAAY;IACZ,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,WAAW;IACX,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;IACV,YAAY;IACZ,aAAa;IACb,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,QAAQ;IACR,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAC,CAAC;IACZ,QAAQ,EAAC,CAAC;IACV,YAAY,EAAC,CAAC;CACf,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ;IACrC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;IACtB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC;IAC9B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;IACvB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC;IAC9B,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC;AAChC,CAAC"}
package/src/pen/render.js CHANGED
@@ -1783,8 +1783,18 @@ export function setCtxLineAnimate(ctx, pen, store) {
1783
1783
  }
1784
1784
  pen.calculative.animateLineWidth &&
1785
1785
  (ctx.lineWidth = pen.calculative.animateLineWidth * store.data.scale);
1786
+ if (Array.isArray(pen.lineAnimateType)) {
1787
+ pen.lineAnimateType.forEach(type => {
1788
+ renderLineAnimate(pen, store, type, ctx);
1789
+ });
1790
+ }
1791
+ else {
1792
+ renderLineAnimate(pen, store, pen.lineAnimateType, ctx);
1793
+ }
1794
+ }
1795
+ function renderLineAnimate(pen, store, type, ctx) {
1786
1796
  let len = 0;
1787
- switch (pen.lineAnimateType) {
1797
+ switch (type) {
1788
1798
  case LineAnimateType.Beads:
1789
1799
  if (pen.animateReverse) {
1790
1800
  ctx.lineDashOffset = pen.calculative.animatePos;
@@ -1969,24 +1979,111 @@ function lineAnimateIconRender(icon) {
1969
1979
  };
1970
1980
  }
1971
1981
  function renderElementOnLine(ctx, line, draw) {
1972
- const dash = Array.isArray(line.lineAnimateDash) ? line.lineAnimateDash : (line.lineAnimateDash?.split(',').map(i => Number(i)) || [10, 20]);
1973
1982
  const scale = line.calculative.canvas.store.data.scale;
1974
1983
  const len = getLineLength(line) / scale;
1975
- const elesPos = computeLineDashSegments(len, dash, line.lineAnimateDashOffset, line.lineAnimateElementCount);
1976
- elesPos.forEach((i, index) => {
1977
- const pos = calculateLineFrameStates(line, i.start);
1978
- if (!pos)
1979
- return;
1980
- try {
1981
- ctx.save();
1982
- draw(ctx, line, pos, index);
1983
- ctx.restore();
1984
- }
1985
- catch (e) {
1986
- ctx.restore();
1987
- console.warn(e);
1984
+ if (line.lineAnimateLoopMode) {
1985
+ renderLoopElementsOnLine(ctx, line, draw, len, scale);
1986
+ }
1987
+ else {
1988
+ // 原有的间隔重复模式
1989
+ const dash = Array.isArray(line.lineAnimateDash) ? line.lineAnimateDash : (line.lineAnimateDash?.split(',').map(i => Number(i)) || [10, 20]);
1990
+ const elesPos = computeLineDashSegments(len, dash, line.lineAnimateDashOffset, line.lineAnimateElementCount);
1991
+ elesPos.forEach((i, index) => {
1992
+ const pos = calculateLineFrameStates(line, i.start);
1993
+ if (!pos)
1994
+ return;
1995
+ try {
1996
+ ctx.save();
1997
+ draw(ctx, line, pos, index);
1998
+ ctx.restore();
1999
+ }
2000
+ catch (e) {
2001
+ ctx.restore();
2002
+ console.warn(e);
2003
+ }
2004
+ });
2005
+ }
2006
+ }
2007
+ /**
2008
+ * 水流模式:元素连续流动,循环往复
2009
+ */
2010
+ function renderLoopElementsOnLine(ctx, line, draw, len, scale) {
2011
+ const dash = Array.isArray(line.lineAnimateDash) ? line.lineAnimateDash : (line.lineAnimateDash?.split(',').map(i => Number(i)) || [10, 20]);
2012
+ const spacing = (dash[0] || 30) * scale; // 缩放后的间距
2013
+ const animatePos = line.calculative.animatePos; // 这是路径长度单位
2014
+ const worldAnchors = line.calculative.worldAnchors;
2015
+ if (worldAnchors.length > 1) {
2016
+ let from;
2017
+ let lastLength = 0; // 累积的路径长度
2018
+ for (let i = 0; i < worldAnchors.length; i++) {
2019
+ let pt = worldAnchors[i];
2020
+ if (from) {
2021
+ // 计算线段的实际像素距离(世界坐标)
2022
+ const segmentPixelLength = line.length;
2023
+ // 计算当前线段上第一个元素的偏移
2024
+ let firstOffset = (animatePos - lastLength) % spacing;
2025
+ // 关键:从负一个间距开始,确保元素无缝进入
2026
+ let offsetInSegment = firstOffset - spacing;
2027
+ let elementIndex = 0;
2028
+ // 扩展绘制范围,从负位置到线段末尾
2029
+ while (offsetInSegment < segmentPixelLength) {
2030
+ // 只绘制在线段范围内的元素(>=0)
2031
+ if (offsetInSegment >= 0) {
2032
+ // 计算元素在整条路径上的位置
2033
+ const absolutePos = lastLength + offsetInSegment;
2034
+ const offsetInstance = (animatePos - absolutePos) / scale;
2035
+ try {
2036
+ ctx.save();
2037
+ const pos = calculateLineFrameStates(line, offsetInstance);
2038
+ if (pos) {
2039
+ draw(ctx, line, pos, elementIndex);
2040
+ }
2041
+ ctx.restore();
2042
+ }
2043
+ catch (e) {
2044
+ ctx.restore();
2045
+ console.warn(e);
2046
+ }
2047
+ }
2048
+ offsetInSegment += spacing;
2049
+ elementIndex++;
2050
+ }
2051
+ // lastLength 累积的是像素距离
2052
+ lastLength += segmentPixelLength;
2053
+ }
2054
+ from = pt;
2055
+ }
2056
+ // 处理闭合路径
2057
+ if (line.close) {
2058
+ let pt = worldAnchors[0];
2059
+ if (from) {
2060
+ const segmentPixelLength = Math.sqrt((pt.x - from.x) ** 2 + (pt.y - from.y) ** 2);
2061
+ let firstOffset = (animatePos - lastLength) % spacing;
2062
+ let offsetInSegment = firstOffset - spacing;
2063
+ let elementIndex = 0;
2064
+ while (offsetInSegment < segmentPixelLength) {
2065
+ if (offsetInSegment >= 0) {
2066
+ const absolutePos = lastLength + offsetInSegment;
2067
+ const offsetInstance = (animatePos - absolutePos) / scale;
2068
+ try {
2069
+ ctx.save();
2070
+ const pos = calculateLineFrameStates(line, offsetInstance);
2071
+ if (pos) {
2072
+ draw(ctx, line, pos, elementIndex);
2073
+ }
2074
+ ctx.restore();
2075
+ }
2076
+ catch (e) {
2077
+ ctx.restore();
2078
+ console.warn(e);
2079
+ }
2080
+ }
2081
+ offsetInSegment += spacing;
2082
+ elementIndex++;
2083
+ }
2084
+ }
1988
2085
  }
1989
- });
2086
+ }
1990
2087
  }
1991
2088
  /**
1992
2089
  * 模拟 canvas lineDash 计算
@@ -3691,28 +3788,48 @@ function dealWithVisio(command, pen, startX, startY) {
3691
3788
  case 'ArcTo':
3692
3789
  let endX2 = (command.v.X * 100 * width) / originWidth + x;
3693
3790
  let endY2 = (command.v.Y * 100 * height) / originHeight + y;
3694
- let h = command.v.A * 100 * (width / height) * (originHeight / originWidth);
3791
+ let h = command.v.A * 100 * pen.calculative.canvas.store.data.scale;
3695
3792
  // 计算弦的中点
3696
3793
  let xm = (startX + endX2) / 2;
3697
3794
  let ym = (startY + endY2) / 2;
3698
3795
  // 计算弦的长度
3699
3796
  let d = Math.sqrt((endX2 - startX) ** 2 + (endY2 - startY) ** 2);
3797
+ // 特殊情况:如果弧高为0或弦长为0,直接画直线
3798
+ if (Math.abs(h) < 0.001 || d < 0.001) {
3799
+ return {
3800
+ c: 'lineTo',
3801
+ v: { x: endX2, y: endY2 }
3802
+ };
3803
+ }
3700
3804
  // 计算圆弧的半径
3701
- let R = d ** 2 / (8 * h) + h / 2;
3702
- // 计算单位垂直向量
3805
+ let R = (d * d) / (8 * Math.abs(h)) + Math.abs(h) / 2;
3806
+ // 计算垂直于弦的单位向量(向左侧,逆时针旋转90度)
3703
3807
  let ux = -(endY2 - startY) / d;
3704
3808
  let uy = (endX2 - startX) / d;
3705
- // 计算两个可能的圆心
3706
- let xc1 = xm + ux * R;
3707
- let yc1 = ym + uy * R;
3708
- let xc2 = xm - ux * R;
3709
- let yc2 = ym - uy * R;
3710
- // 选择一个圆心
3711
- let xc = xc1;
3712
- let yc = yc1;
3713
- // 计算起点和终点到圆心的角度
3809
+ // 圆心到弦中点的距离
3810
+ let centerDist = R - Math.abs(h);
3811
+ // 根据A的符号选择圆心位置
3812
+ // A>0: 弧向左侧凸起,圆心在右侧
3813
+ // A<0: 弧向右侧凸起,圆心在左侧
3814
+ let xc = xm - Math.sign(h) * ux * centerDist;
3815
+ let yc = ym - Math.sign(h) * uy * centerDist;
3816
+ // 计算起点和终点相对于圆心的角度
3714
3817
  let startAngle = Math.atan2(startY - yc, startX - xc);
3715
3818
  let endAngle = Math.atan2(endY2 - yc, endX2 - xc);
3819
+ // 确定绘制方向
3820
+ // 计算角度差,归一化到[-π, π]
3821
+ let angleDiff = endAngle - startAngle;
3822
+ while (angleDiff > Math.PI)
3823
+ angleDiff -= 2 * Math.PI;
3824
+ while (angleDiff < -Math.PI)
3825
+ angleDiff += 2 * Math.PI;
3826
+ // A>0时,应该逆时针绘制较小的弧
3827
+ // A<0时,应该顺时针绘制较小的弧
3828
+ let anticlockwise = h > 0;
3829
+ if ((anticlockwise && angleDiff > 0) || (!anticlockwise && angleDiff < 0)) {
3830
+ [startAngle, endAngle] = [endAngle, startAngle];
3831
+ anticlockwise = !anticlockwise;
3832
+ }
3716
3833
  return {
3717
3834
  c: 'arc',
3718
3835
  v: {
@@ -3721,8 +3838,10 @@ function dealWithVisio(command, pen, startX, startY) {
3721
3838
  radius: R,
3722
3839
  startAngle: startAngle,
3723
3840
  endAngle: endAngle,
3724
- aclockwise: true,
3841
+ anticlockwise: anticlockwise,
3725
3842
  },
3843
+ startX: endX2,
3844
+ startY: endY2,
3726
3845
  };
3727
3846
  default:
3728
3847
  const cloneCommand = deepClone(command);