Base object options for all equation symbols
isTouchable, touchBorder, color and onClick change the corresponding
properties on the FigureElementPrimitive, and could therefore also
be set in mods. However, as these are commonly used, they are included in
the root object for convenience.
Extends EQN_Symbol
Vinculum symbol used in fractions ( EQN_Fraction equation function).

width
|<---------------------------------------->|
| |
| | ____
00000000000000000000000000000000000000000000 A
00000000000000000000000000000000000000000000 | lineWidth
00000000000000000000000000000000000000000000 __V_
used when draw=static.
number sets width of static symbol - 'first' calculates and sets width
based on first use
figure.add({
make: 'equation',
elements: {
v: { symbol: 'vinculum' },
},
forms: {
form1: { frac: ['a', 'v', 'b'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { frac: ['a', 'vinculum', 'b'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { frac: ['a', 'v1_vinculum', { frac: ['c', 'v2_vinculum', 'b'] }] },
form2: { frac: [['a', 'ef'], 'v1', { frac: ['c', 'v2', 'd'] }] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { frac: ['a', { vinculum: { lineWidth: 0.004 } }, 'b'] },
},
});
Extends EQN_Symbol
Box equation symbol used in EQN_Box and as a EQN_EncompassGlyph.

width
|<--------------------------------------------------->|
| |
| |
------- 0000000000000000000000000000000000000000000000000000000
A 0000000000000000000000000000000000000000000000000000000
| 0000 0000
| 0000 0000
| 0000 0000
height | 0000 0000
| 0000 0000
| 0000 0000
| 0000 0000
| 0000 0000
| 0000000000000000000000000000000000000000000000000000000
V______ 0000000000000000000000000000000000000000000000000000000
force width instead of auto calculation
force height instead of auto calculation
'dynamic' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets width of static symbol - 'first' calculates and sets width
based on first use
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
b: { symbol: 'box', lineWidth: 0.008 },
},
forms: {
form1: { box: ['a', 'b', true, 0.1] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { box: ['a', 'box', true, 0.1] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { box: ['a', 'b_box', false, 0.1] },
form2: { box: ['a', 'b', false, 0.2] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { box: ['a', { box: { lineWidth: 0.004 } }, true, 0.1] },
},
});
Extends EQN_Symbol
Arrow equation symbol.
The arrow direction defines where it can be used:
'left', 'right': EQN_Bar (top and bottom sides),
EQN_Comment, and EQN_LeftRightGlyph'up', 'down': EQN_Bracket, EQN_Bar (left and right
sides), and EQN_TopBottomGlyphNote, as the default direciton is 'right', using the inline definition of
arrow will only work with EQN_Bar (top and bottom sides),
EQN_Comment, and EQN_LeftRightGlyph.

arrowWidth
|<--------------->|
| |
| |
-------|------- 0 |
A | 00000 |
arrowHeight | | 0000000 |
| | 00000000000 |
V | 000000000000000 |
------ 0000000000000000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
| |
| |
|<--->|
lineWidth
'dynamic' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
rightArrow: { symbol: 'arrow', direction: 'right' },
},
forms: {
form1: { bar: ['a', 'rightArrow', false, 0.05, 0.03] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { bar: ['a', 'arrow', false, 0.05, 0.03] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { bar: ['a', 'ar_arrow', false, 0.05, 0] },
form2: { bar: ['a', 'ar', false, 0.05, 0.1] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: {
bar: {
content: 'a',
side: 'left',
symbol: { arrow: { direction: 'up' } },
overhang: 0.1,
},
},
},
});
Extends EQN_Symbol
Sum equation symbol used with the EQN_SumOf equation function.

---------- 00000000000000000000000000000000000
A 0000000 000000
| 0000000 000
| 0000000 00
| 0000000
| 0000000
| 0000000
| 0000000
| 0000000
| 0000000
| 0000000
| 000000
| 000
| 0000
height | 0000
| 0000 \
| 0000 \
| 0000 lineWidth
| 0000
| 0000
| 0000
| 0000 00
| 0000 000|
| 0000 000000|
V 000000000000000000000000000000000000 |
-------- 000000000000000000000000000000000000 |
| |
| |
| width |
|<------------------------------------>|
(height * 0.88 / (25 * height + 15))
number of sides that make up serif curve
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
sigma: { symbol: 'sum' },
},
forms: {
form1: { sumOf: ['sigma', 'a', 'a = 0', 'n'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { sumOf: ['sum', 'a', 'a = 0', 'n'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { sumOf: ['s1_sum', 'a', 'a = 0', 'n'] },
form2: { sumOf: ['s1', 'a', 'a = 0', 'm'] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { sumOf: [{ sum: { lineWidth: 0.01 } }, 'a', 'a = 0', 'n'] },
},
});
Extends EQN_Symbol
Product equation symbol used with the EQN_ProdOf equation function.

width
|<--------------------------------------------------------->|
| |
| |
| |
| lineWidth |
| / |
| / |
---- 00000000000000000000000000000000000000000000000000000000000000
A 000000000000000000000000000000000000000000000000000000
| 00000000000000000000000000000000000000000000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
height | 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 00000000000 00000000000
| 0000000000000 00000000000000
V 00000000000000000 000000000000000000
----- 0000000000000000000000000 00000000000000000000000000
number of sides that make up serif curve
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
sigma: { symbol: 'prod' },
},
forms: {
form1: { prodOf: ['sigma', 'a', 'a = 0', 'n'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { prodOf: ['prod', 'a', 'a = 0', 'n'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { prodOf: ['p1_prod', 'a', 'a = 0', 'n'] },
form2: { prodOf: ['p1', 'a', 'a = 0', 'm'] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { prodOf: [{ prod: { lineWidth: 0.01 } }, 'a', 'a = 0', 'n'] },
},
});
Extends EQN_Symbol
Integral equation symbol used with the EQN_Integral equation function.



-------------------------------------------------- 0000000
A 000000011111111
| 0000000 111111111111
| 0000000 11111111111111
| 0000000 11111111111111
| 0000000 111111111111
| 000000000 11111111
| 000000000
| 0000000000
| 000000000
| 0000000000
| 0000000000
| 00000000000
| 00000000000
| 000000000000
| 000000000000 lineWidth
| height ------->000000000000<----------
| 000000000000
| 000000000000
| 000000000000
| 00000000000
| 00000000000
| 0000000000
| 0000000000
| Serif 000000000
| \ 000000000
| \ 0000000000
| 11111111 000000000
| 111111111111 00000000
| 11111111111111 0000000
| 11111111111111 0000000
| 111111111111 0000000
V 111111110000000
------- 0000000
number of sides that make up s curve
number of integral symbols
line draws a circle through the
symbols denoting a line integral
width of s curve tip
false to remove serifs
number of sides in serif circles
number of sides in line integral circle
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
int: { symbol: 'int' },
},
forms: {
form1: { int: ['int', 'x dx', 'a', 'b'] },
},
});
figure.add({
make: 'equation',
elements: {
int: { symbol: 'int', num: 3 },
},
forms: {
form1: { int: ['int', 'dx dy dz'] },
},
});
figure.add({
make: 'equation',
elements: {
int: { symbol: 'int', type: 'line' },
},
forms: {
form1: { int: ['int', 'r dr'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { int: ['int', 'x dx', 'a', 'b'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { int: ['i1_int', 'x dx', 'a', 'b'] },
form2: { int: ['i1', 'y dy', 'a', 'b'] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { int: [{ int: { serif: false } }, 'x dx', 'a', 'b'] },
},
});
Extends EQN_Symbol
Radical equation symbol used in EQN_Root.
The radical symbol allows customization on how to draw the radical. Mostly it will not be needed, but for edge case equation layouts it may be useful.

height
|
|
|_____________________________ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
A X|
| startHeight X | CCCCCCCCCCCCCCCCCCCCCCC
| | X | CCCCCCCCCCCCCCCCCCCCCCC
| | tickHeight X | CCCCCCCCCCCCCCCCCCCCCCC
| | | X | CCCCCCCCCCCCCCCCCCCCCCC
| |____V____ X | CCCCCCCCCCCCCCCCCCCCCCC
| A | X X | CCCCCCCCCCCCCCCCCCCCCCC
| | |__X |X X | CCCCCCCCCCCCCCCCCCCCCCC
| | A | | X X | CCCCCCCCCCCCCCCCCCCCCCC
| | | | X X | CCCCCCCCCCCCCCCCCCCCCCC
| | | | X X | CCCCCCCCCCCCCCCCCCCCCCC
V___V______|__|____X |
| | | |
| | | |
tickWidth >|--|< | |
| | | |
| |<-->|downWidth |
| |
|<----------------->|
startWidth
force width of content area
force height of content area
true makes startHeight,
startWidth, tickHeight, tickWidth, and downWidth a percentage of
height instead of absolute
lineWidth of down stroke
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
used when draw=static.
number sets width of static symbol - 'first' calculates and sets width
based on first use
figure.add({
make: 'equation',
elements: {
r: { symbol: 'radical' },
},
forms: {
form1: { root: ['r', 'a', false, 0.05] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { root: ['radical', 'a', false, 0.05] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { root: ['r1_radical', 'a', false, 0.05] },
form2: { root: ['r1', ['a', 'b'], false, 0.05] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { root: [{ radical: { lineWidth: 0.005 } }, 'a', false, 0.05] },
},
});
Extends EQN_Symbol
Division equation symbol used in EQN_Root.
The division symbol allows customization on how to draw the long form and short form division symbol. Mostly it will not be needed, but for edge case equation layouts it may be useful.

left space right space
bend width |<->|<---->| >|--|<
| | | | |
| | | | |
------- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX____V
A X | | |_______|
| X | CCCCCCCCCCCCCCCCCCCCCCC A
| X CCCCCCCCCCCCCCCCCCCCCCC top space
| X CCCCCCCCCCCCCCCCCCCCCCC
height | X CCCCCCCCCCCCCCCCCCCCCCC
| X CCCCCCCCCCCCCCCCCCCCCCC
| X CCCCCCCCCCCCCCCCCCCCCCC
| X CCCCCCCCCCCCCCCCCCCCCCC
| X CCCCCCCCCCCCCCCCCCCCCCC
| X CCCCCCCCCCCCCCCCCCCCCCC bottom space
V X CCCCCCCCCCCCCCCCCCCCCCC_______V
------ X _________________________________________|
| A
| |
| width |
|<----------------------------------------->
force width of content area
force height of content area
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
used when draw=static.
number sets width of static symbol - 'first' calculates and sets width
based on first use
figure.add({
make: 'equation',
elements: {
d: { symbol: 'division', bendWidth: 0.05 },
},
forms: {
form1: { box: ['abc', 'd'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { box: ['abc', 'division'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { box: ['abc', 'd1_division'] },
form2: { box: ['abc', 'd1'] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { box: ['abc', { division: { lineWidth: 0.005 } }] },
},
});
Extends EQN_Symbol
Strike equation symbol used in EQN_Strike.
Integral equation symbol used with the EQN_Strike and EQN_StrikeComment equation functions.




Four styles of strike symbol are available:
000 000
000 000
000 000
000 0000000000000000
000 000
000 000
000 000
cross horizontal
000 000
000 000
000 000
000 000
000 000
000 000
000 000
forward back
force width of strike
force height of strike
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
used when draw=static.
number sets width of static symbol - 'first' calculates and sets width
based on first use
figure.add({
make: 'equation',
elements: {
s: { symbol: 'strike', style: 'cross', lineWidth: 0.01 },
},
forms: {
form1: { strike: ['ABC', 's'] },
},
});
figure.add({
make: 'equation',
elements: {
s: { symbol: 'strike', style: 'forward', lineWidth: 0.01 },
},
forms: {
form1: { strike: ['ABC', 's'] },
},
});
figure.add({
make: 'equation',
elements: {
s: { symbol: 'strike', style: 'back', lineWidth: 0.01 },
},
forms: {
form1: { strike: ['ABC', 's'] },
},
});
figure.add({
make: 'equation',
elements: {
s: { symbol: 'strike', style: 'horizontal', lineWidth: 0.01 },
},
forms: {
form1: { strike: ['ABC', 's'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { strike: ['ABC', 'strike'] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { strike: ['ABC', 's1_strike'] },
form2: { strike: ['DEFGH', 's1'] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { strike: ['ABC', { strike: { style: 'forward' } }] },
},
});
Extends EQN_Symbol
Bracket equation symbol used in EQN_Bracket, EQN_Bar, EQN_Matrix, and EQN_Comment.

tipWidth
----->| |<---
| |
| |
000
0000
00000
000000
000000
000000
lineWidth 000000
------>000000<---
000000
|000000
|000000
| 000000
| 00000
| 0000
| 000
| |
| |
|<------->|
width
how to orient the bracket
number of sides in bracket curve
force width bracket
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
lb: { symbol: 'bracket', side: 'left' },
rb: { symbol: 'bracket', side: 'right' },
},
forms: {
form1: { brac: ['lb', 'a', 'rb'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: {
brac: [
{ lb_bracket: { side: 'left' } },
'a',
{ rb_bracket: { side: 'right' } },
],
},
},
});
Extends EQN_Symbol
Angle bracket equation symbol used in EQN_Bracket, EQN_Bar, EQN_Matrix, and EQN_Comment.

width
|<------->|
| |
--------|----- 0000
A | 0000
| | 0000
| | 0000
| | 0000
| 0000
height | 0000
| 0000
| 0000
| 0000
| 0000
| 0000
| 0000
V_____________ 0000
how to orient the angle bracket
force width bracket
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
lb: { symbol: 'angleBracket', side: 'left' },
rb: { symbol: 'angleBracket', side: 'right' },
},
forms: {
form1: { brac: ['lb', 'a', 'rb'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: {
brac: [
{ lb_angleBracket: { side: 'left' } },
'a',
{ rb_angleBracket: { side: 'right' } },
],
},
},
});
Extends EQN_Symbol
Brace equation symbol used in EQN_Bracket, EQN_Bar, EQN_Matrix, and EQN_Comment.

width
|<------>|
| |
| |
| 000
| 000
| 000
| 0000
| 0000
| 0000
| 0000
| 000
| 000
000
000
000
0000
0000
0000
0000
- - -0000 - - - -
| 000 |
| 000 |
| 000 |
- - - - - - - - -
\
\
\
- - - - - - - - - - - - - - - - - - - - - - - - -
| 00000000000000 |
| 00000000000000 |
| 000000000000 tipWidth |
| 000000000000 | |
| 000000000000 | |
| 0000000000000 _______V_ |
| 00000000000 |
| 0000000_________ |
| A |
- - - - - - - - - - - - - - - - - - - - - - - - -
how to orient the brace
force width bracket
number of sides in curved sections
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
lb: { symbol: 'brace', side: 'left' },
rb: { symbol: 'brace', side: 'right' },
},
forms: {
form1: { brac: ['lb', 'a', 'rb'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: {
brac: [
{ lb_brace: { side: 'left' } },
'a',
{ rb_brace: { side: 'right' } },
],
},
},
});
Extends EQN_Symbol
Bar equation symbol.
The bar side defines where it can be used:
'top', 'bottom': EQN_Bar (top and bottom sides),
EQN_Comment, and EQN_LeftRightGlyph'left', 'right': EQN_Bracket, EQN_Bar (left and right
sides), EQN_Matrix and EQN_TopBottomGlyphNote, as the default direciton is 'right', using the inline definition of
arrow will only work with EQN_Bar (top and bottom sides),
EQN_Comment, and EQN_LeftRightGlyph.


>| |<---- lineWidth
| |
| |
000
000
000
000
000
000
000
000
000
000
000
how to orient the bar
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
b: { symbol: 'bar', side: 'top' },
},
forms: {
form1: { bar: ['a', 'b', false, 0.05, 0.03] },
},
});
figure.add({
make: 'equation',
forms: {
form1: {
bar: {
content: 'a',
symbol: 'bar',
side: 'left',
overhang: 0.1,
},
},
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { bar: ['a', { bar: { side: 'top' } }, false, 0.05, 0.03] },
form2: { bar: [['a', 'bc'], { bar: { side: 'top' } }, false, 0.05, 0.03] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { bar: ['a', { bar: { side: 'top' } }, false, 0.05, 0.03] },
},
});
Extends EQN_Symbol
Square bracket equation symbol used in EQN_Bracket, EQN_Bar, EQN_Matrix, and EQN_Comment.

width
|<--------------------->|
| |
___ ____
A 0000000000000000000000000 A
| 0000000000000000000000000 | tipWidth
| 0000000000000000000000000 ___V
| 00000000
| 00000000
| 00000000
| 00000000
height | 00000000
| 00000000
| 00000000
| 00000000
| 00000000
| 00000000
| 0000000000000000000000000
| 0000000000000000000000000
V___ 0000000000000000000000000
| |
| |
|<---->|
line width
how to orient the square bracket
optional curved corner radius
number of sides in curve
'static' updates vertices on
resize, 'static' only changes scale transform
used when draw=static.
number sets height of static symbol - 'first' calculates and sets height
based on first use
figure.add({
make: 'equation',
elements: {
lb: { symbol: 'squareBracket', side: 'left' },
rb: { symbol: 'squareBracket', side: 'right' },
},
forms: {
form1: { brac: ['lb', 'a', 'rb'] },
},
});
figure.add({
make: 'equation',
forms: {
form1: {
brac: [
{ lb_squareBracket: { side: 'left' } },
'a',
{ rb_squareBracket: { side: 'right' } },
],
},
},
});
Extends EQN_Symbol
A line symbol to be used in EQN_Annotate and EQN_Comment as an EQN_LineGlyph to draw a line between the content and an annotation.
The line can be solid or dashed, and have arrows on either or both ends.


line width
dash style of line
arrow styles of line where start is toward the content
figure.add({
make: 'equation',
elements: {
l: { symbol: 'line', arrow: 'barb', width: 0.005 },
},
forms: {
form1: { topComment: ['a', 'b', 'l', 0.2, 0.2] },
},
});
figure.add({
make: 'equation',
elements: {
l: { symbol: 'line', dash: [0.01, 0.01], width: 0.005 },
},
forms: {
form1: { topComment: ['a', 'b', 'l', 0.2, 0.2] },
},
});
figure.add({
make: 'equation',
forms: {
form1: { topComment: ['a', 'b', 'line', 0.2, 0.2] },
},
});
const eqn = figure.add({
make: 'equation',
forms: {
form1: { topComment: ['a', 'b', 'l1_line', 0.2, 0.2] },
form2: { topComment: ['c', 'd', 'l1', 0.2, 0.2] },
},
});
eqn.animations.new()
.goToForm({ delay: 1, target: 'form2', animate: 'move' })
.start();
figure.add({
make: 'equation',
forms: {
form1: { topComment: ['a', 'b', { line: { arrow: 'barb' } }, 0.2, 0.2] },
},
});
'dynamic'updates vertices on resize,'static'only changes scale transform