parent
4b0edd4b94
commit
8ad0efe7df
2 changed files with 161 additions and 15 deletions
|
@ -111,3 +111,6 @@
|
|||
- Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`).
|
||||
- SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`).
|
||||
- CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`).
|
||||
- ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW (`U+2B8F`).
|
||||
- RETURN LEFT (`U+2B90`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`).
|
||||
- DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`).
|
||||
|
|
|
@ -536,7 +536,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
|
|||
create-glyph id unicode : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
shape x2 y2 x3 y3 size
|
||||
shape x2 y2 x3 y3 [fallback size arrowHeadSize]
|
||||
bar x1 y1 x2 y2
|
||||
|
||||
do "Straight Arrow"
|
||||
|
@ -706,23 +706,166 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
|
|||
define bendT : SymbolMid + bendArrowHeadSize * 2
|
||||
define bendB : SymbolMid - bendArrowHeadSize * 2
|
||||
|
||||
define [VBS x1 y1 x2 y2] : VBar.m x1 y1 (y2 - 0.5 * arrowSw) arrowSw
|
||||
define [VBE x1 y1 x2 y2] : VBar.m x1 y1 (y2 + 0.5 * arrowSw) arrowSw
|
||||
define [HBS x1 y1 x2 y2] : HBar.m x1 (x2 - 0.5 * arrowSw) y1 arrowSw
|
||||
define [HBE x1 y1 x2 y2] : HBar.m x1 (x2 + 0.5 * arrowSw) y1 arrowSw
|
||||
define [VBS x1 y1 x2 y2] : ArrowBar x1 y1 x2 (y2 - halfArrowSw) halfArrowSw 0 0
|
||||
define [VBE x1 y1 x2 y2] : ArrowBar x1 y1 x2 (y2 + halfArrowSw) halfArrowSw 0 0
|
||||
define [HBS x1 y1 x2 y2] : ArrowBar x1 y1 (x2 - halfArrowSw) y2 halfArrowSw 0 0
|
||||
define [HBE x1 y1 x2 y2] : ArrowBar x1 y1 (x2 + halfArrowSw) y2 halfArrowSw 0 0
|
||||
|
||||
MkAngleArrow ArrowShape VBE [MangleName 'Arrow-up-angle-bend-left'] [MangleUnicode 0x21b0] bendR arrowBot bendR (arrowTop - bendArrowHeadSize) bendL (arrowTop - bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBE [MangleName 'Arrow-up-angle-bend-right'] [MangleUnicode 0x21b1] bendL arrowBot bendL (arrowTop - bendArrowHeadSize) bendR (arrowTop - bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-bend-left'] [MangleUnicode 0x21b2] bendR arrowTop bendR (arrowBot + bendArrowHeadSize) bendL (arrowBot + bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-bend-right'] [MangleUnicode 0x21b3] bendL arrowTop bendL (arrowBot + bendArrowHeadSize) bendR (arrowBot + bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBE [MangleName 'arrowUpTipBendLeft'] [MangleUnicode 0x21B0] bendR arrowBot bendR (arrowTop - bendArrowHeadSize) bendL (arrowTop - bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBE [MangleName 'arrowUpTipBendRight'] [MangleUnicode 0x21B1] bendL arrowBot bendL (arrowTop - bendArrowHeadSize) bendR (arrowTop - bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'arrowDownTipBendLeft'] [MangleUnicode 0x21B2] bendR arrowTop bendR (arrowBot + bendArrowHeadSize) bendL (arrowBot + bendArrowHeadSize) bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'arrowDownTipBendRight'] [MangleUnicode 0x21B3] bendL arrowTop bendL (arrowBot + bendArrowHeadSize) bendR (arrowBot + bendArrowHeadSize) bendArrowHeadSize
|
||||
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-bend-down'] [MangleUnicode 0x2B0E] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendB bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-bend-up'] [MangleUnicode 0x2B0F] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendT bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBS [MangleName 'Arrow-left-angle-bend-down'] [MangleUnicode 0x2B10] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendB bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBS [MangleName 'Arrow-left-angle-bend-up'] [MangleUnicode 0x2B11] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendT bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'arrowRightTipBendDown'] [MangleUnicode 0x2B0E] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendB bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'arrowRightTipBendUp'] [MangleUnicode 0x2B0F] arrowSB SymbolMid (arrowRSB - bendArrowHeadSize) SymbolMid (arrowRSB - bendArrowHeadSize) bendT bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBS [MangleName 'arrowLeftTipBendDown'] [MangleUnicode 0x2B10] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendB bendArrowHeadSize
|
||||
MkAngleArrow ArrowShape HBS [MangleName 'arrowLeftTipBendUp'] [MangleUnicode 0x2B11] arrowRSB SymbolMid (arrowSB + bendArrowHeadSize) SymbolMid (arrowSB + bendArrowHeadSize) bendT bendArrowHeadSize
|
||||
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'arrowRightCornerDown'] [MangleUnicode 0x21B4] arrowSB arrowTop (arrowRSB - arrowHeadSize) arrowTop (arrowRSB - arrowHeadSize) arrowBot arrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'arrowDownCornerLeft'] [MangleUnicode 0x21B5] arrowRSB arrowTop arrowRSB (arrowBot + arrowHeadSize) arrowSB (arrowBot + arrowHeadSize) arrowHeadSize
|
||||
|
||||
# Bent TrigArrows
|
||||
local hcDist : Math.max (halfArrowSw * 5) (arrowWidth / 2)
|
||||
local vcDist : arrowHeadSize * 1.75
|
||||
|
||||
define yLower : SymbolMid - vcDist / 2
|
||||
define yUpper : SymbolMid + vcDist / 2
|
||||
define xLeft : arrowMidX - hcDist / 2
|
||||
define xRight : arrowMidX + hcDist / 2
|
||||
define arrowSB2 : arrowSB + halfArrowSw
|
||||
define arrowRSB2 : arrowRSB - halfArrowSw
|
||||
|
||||
MkAngleArrow TrigArrowShape VBS [MangleName 'trigArrowDownLongBendLeft'] [MangleUnicode 0x2BA0] arrowRSB2 yUpper arrowRSB2 yLower arrowSB yLower
|
||||
MkAngleArrow TrigArrowShape VBS [MangleName 'trigArrowDownLongBendRight'] [MangleUnicode 0x2BA1] arrowSB2 yUpper arrowSB2 yLower arrowRSB yLower
|
||||
MkAngleArrow TrigArrowShape VBE [MangleName 'trigArrowUpLongBendLeft'] [MangleUnicode 0x2BA2] arrowRSB2 yLower arrowRSB2 yUpper arrowSB yUpper
|
||||
MkAngleArrow TrigArrowShape VBE [MangleName 'trigArrowUpLongBendRight'] [MangleUnicode 0x2BA3] arrowSB2 yLower arrowSB2 yUpper arrowRSB yUpper
|
||||
MkAngleArrow TrigArrowShape HBS [MangleName 'trigArrowLeftLongBendUp'] [MangleUnicode 0x2BA4] xRight arrowBot xLeft arrowBot xLeft arrowTop
|
||||
MkAngleArrow TrigArrowShape HBE [MangleName 'trigArrowRightLongBendUp'] [MangleUnicode 0x2BA5] xLeft arrowBot xRight arrowBot xRight arrowTop
|
||||
MkAngleArrow TrigArrowShape HBS [MangleName 'trigArrowLeftLongBendDown'] [MangleUnicode 0x2BA6] xRight arrowTop xLeft arrowTop xLeft arrowBot
|
||||
MkAngleArrow TrigArrowShape HBE [MangleName 'trigArrowRightLongBendDown'] [MangleUnicode 0x2BA7] xLeft arrowTop xRight arrowTop xRight arrowBot
|
||||
|
||||
# Complex Bent Arrows
|
||||
define pSlant 0.2
|
||||
create-glyph [MangleName 'arrowReturnLeft'] [MangleUnicode 0x2B90] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local x1 : mix arrowRSB arrowSB pSlant
|
||||
include : TrigArrowShape x1 yLower arrowSB yLower arrowHeadSize
|
||||
include : intersection [MaskBelow : yUpper + halfArrowSw] : dispiro
|
||||
widths.lhs arrowSw
|
||||
disable-contrast
|
||||
flat x1 (yLower - halfArrowSw)
|
||||
curl arrowRSB (yUpper + halfArrowSw)
|
||||
include : intersection
|
||||
MaskLeftLine x1 (yLower - halfArrowSw) arrowRSB (yUpper + halfArrowSw)
|
||||
ArrowBar arrowMidX yUpper arrowRSB yUpper halfArrowSw 0 0
|
||||
|
||||
create-glyph [MangleName 'arrowReturnRight'] [MangleUnicode 0x2B91] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local x1 : mix arrowSB arrowRSB pSlant
|
||||
include : TrigArrowShape x1 yLower arrowRSB yLower arrowHeadSize
|
||||
include : intersection [MaskBelow : yUpper + halfArrowSw] : dispiro
|
||||
widths.rhs arrowSw
|
||||
disable-contrast
|
||||
flat x1 (yLower - halfArrowSw)
|
||||
curl arrowSB (yUpper + halfArrowSw)
|
||||
include : intersection
|
||||
MaskRightLine x1 (yLower - halfArrowSw) arrowSB (yUpper + halfArrowSw)
|
||||
ArrowBar arrowMidX yUpper arrowSB yUpper halfArrowSw 0 0
|
||||
|
||||
define pNewline 0.35
|
||||
define pGap : StrokeWidthBlend 0.1 0.05
|
||||
define arrowGapX : pGap * (arrowRSB - arrowSB)
|
||||
define arrowGapX2 : 0.1 * (arrowRSB - arrowSB)
|
||||
define arrowGapY : pGap * (arrowTop - arrowBot)
|
||||
create-glyph [MangleName 'arrowNewlineLeft'] [MangleUnicode 0x2B92] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local x1 : mix arrowRSB arrowSB pNewline
|
||||
local x2 : mix arrowSB arrowRSB pNewline
|
||||
local x3 : arrowRSB - halfArrowSw
|
||||
include : ArrowBar arrowSB yUpper (x1 - arrowGapX2) yUpper halfArrowSw 0 0
|
||||
include : ArrowBar x1 yUpper arrowRSB yUpper halfArrowSw 0 0
|
||||
include : ArrowBar x3 yUpper x3 yLower halfArrowSw 0 0
|
||||
include : TrigArrowShape arrowRSB yLower x2 yLower arrowHeadSize
|
||||
include : ArrowBar (x2 - arrowGapX) yLower arrowSB yLower halfArrowSw 0 0
|
||||
|
||||
create-glyph [MangleName 'arrowNewlineRight'] [MangleUnicode 0x2B93] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local x1 : mix arrowSB arrowRSB pNewline
|
||||
local x2 : mix arrowRSB arrowSB pNewline
|
||||
local x3 : arrowSB + halfArrowSw
|
||||
include : ArrowBar arrowRSB yUpper (x1 + arrowGapX2) yUpper halfArrowSw 0 0
|
||||
include : ArrowBar x1 yUpper arrowSB yUpper halfArrowSw 0 0
|
||||
include : ArrowBar x3 yUpper x3 yLower halfArrowSw 0 0
|
||||
include : TrigArrowShape arrowSB yLower x2 yLower arrowHeadSize
|
||||
include : ArrowBar (x2 + arrowGapX) yLower arrowRSB yLower halfArrowSw 0 0
|
||||
|
||||
create-glyph [MangleName 'arrowCirclingCCW'] [MangleUnicode 0x2B94] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
define headSize : arrowHeadSize * 0.5
|
||||
define offset : 0.75 * headSize / 2
|
||||
include : VBE xRight (SymbolMid + offset + arrowGapY) xRight yUpper
|
||||
include : TrigArrowShape xRight yUpper (arrowMidX - offset) yUpper headSize
|
||||
include : HBS (arrowMidX - offset - arrowGapX) yUpper xLeft yUpper
|
||||
include : TrigArrowShape xLeft yUpper xLeft (SymbolMid - offset) headSize
|
||||
include : VBS xLeft (SymbolMid - offset - arrowGapY) xLeft yLower
|
||||
include : TrigArrowShape xLeft yLower (arrowMidX + offset) yLower headSize
|
||||
include : HBE (arrowMidX + offset + arrowGapX) yLower xRight yLower
|
||||
include : TrigArrowShape xRight yLower xRight (SymbolMid + offset) headSize
|
||||
|
||||
# U-Shaped Arrows
|
||||
create-glyph [MangleName 'trigArrowUShapeLeft'] [MangleUnicode 0x2B8C] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : dispiro
|
||||
widths.center arrowSw
|
||||
disable-contrast
|
||||
flat arrowSB yLower [heading Rightward]
|
||||
curl (arrowRSB2 - vcDist / 2) yLower
|
||||
archv
|
||||
g4 arrowRSB2 SymbolMid
|
||||
arcvh
|
||||
flat (arrowRSB2 - vcDist / 2) yUpper
|
||||
curl arrowMidX yUpper [heading Leftward]
|
||||
include : TrigArrowShape arrowMidX yUpper arrowSB yUpper arrowHeadSize
|
||||
create-glyph [MangleName 'trigArrowUShapeUp'] [MangleUnicode 0x2B8D] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : dispiro
|
||||
widths.center arrowSw
|
||||
disable-contrast
|
||||
flat xLeft arrowTop [heading {.x 1 .y 0}]
|
||||
curl xLeft (arrowBot + hcDist / 2)
|
||||
arcvh
|
||||
g4 arrowMidX arrowBot
|
||||
archv
|
||||
flat xRight (arrowBot + hcDist / 2)
|
||||
curl xRight [Math.max SymbolMid : arrowBot + hcDist / 2 + TINY] [heading {.x (-1) .y 0}]
|
||||
include : TrigArrowShape xRight SymbolMid xRight arrowTop arrowHeadSize
|
||||
create-glyph [MangleName 'trigArrowUShapeRight'] [MangleUnicode 0x2B8E] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : dispiro
|
||||
widths.center arrowSw
|
||||
disable-contrast
|
||||
flat arrowRSB yUpper [heading Leftward]
|
||||
curl (arrowSB2 + vcDist / 2) yUpper
|
||||
archv
|
||||
g4 arrowSB2 SymbolMid
|
||||
arcvh
|
||||
flat (arrowSB2 + vcDist / 2) yLower
|
||||
curl arrowMidX yLower [heading Rightward]
|
||||
include : TrigArrowShape arrowMidX yLower arrowRSB yLower arrowHeadSize
|
||||
create-glyph [MangleName 'trigArrowUShapeDown'] [MangleUnicode 0x2B8F] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : dispiro
|
||||
widths.center arrowSw
|
||||
disable-contrast
|
||||
flat xRight arrowBot [heading {.x (-1) .y 0}]
|
||||
curl xRight (arrowTop - hcDist / 2)
|
||||
arcvh
|
||||
g4 arrowMidX arrowTop
|
||||
archv
|
||||
flat xLeft (arrowTop - hcDist / 2)
|
||||
curl xLeft [Math.min SymbolMid : arrowTop - hcDist / 2 - TINY] [heading {.x 1 .y 0}]
|
||||
include : TrigArrowShape xLeft SymbolMid xLeft arrowBot arrowHeadSize
|
||||
|
||||
MkAngleArrow ArrowShape HBE [MangleName 'Arrow-right-angle-down'] [MangleUnicode 0x21b4] arrowSB arrowTop (arrowRSB - arrowHeadSize) arrowTop (arrowRSB - arrowHeadSize) arrowBot arrowHeadSize
|
||||
MkAngleArrow ArrowShape VBS [MangleName 'Arrow-down-angle-left'] [MangleUnicode 0x21b5] arrowRSB arrowTop arrowRSB (arrowBot + arrowHeadSize) arrowSB (arrowBot + arrowHeadSize) arrowHeadSize
|
||||
|
||||
do "Half-head Arrows"
|
||||
MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHR'] [MangleUnicode 0x21BC] arrowRSB SymbolMid arrowSB SymbolMid
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue