Some Supplementary Arrows C (#2335)

* arrows

* order
This commit is contained in:
Logo 2024-05-18 03:33:56 +08:00 committed by GitHub
parent 73c85a01c8
commit 82aee0a5b6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 51 additions and 1 deletions

View file

@ -1,4 +1,7 @@
* Reduce fully-serifed variants of turned m (`U+019C`, `U+026F`, `U+0270`) and Cyrillic Italic Lower {Sha|Scha} (`U+0448`, `U+0449`) under monospace. * Reduce fully-serifed variants of turned m (`U+019C`, `U+026F`, `U+0270`) and Cyrillic Italic Lower {Sha|Scha} (`U+0448`, `U+0449`) under monospace.
* Add characters: * Add characters:
- SQUAT BLACK RIGHTWARDS ARROW (`U+27A7`).
- LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`).
- LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`). - LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`).
- LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD (`U+1F800`) ... DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD (`U+1F80B`).
- LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD (`U+1F810`) ... DOWNWARDS HEAVY ARROW (`U+1F847`).

View file

@ -7,7 +7,7 @@ glyph-module
glyph-block Symbol-Arrow : for-width-kinds WideWidth1 glyph-block Symbol-Arrow : for-width-kinds WideWidth1
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Symbol-Geometric-Shared : UnicodeWeightGrade glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes
define arrowHeight : para.arrowHeight * (Width - SB / 2) * [Math.pow (MosaicWidth / MosaicUnitWidth) (1 / 3)] define arrowHeight : para.arrowHeight * (Width - SB / 2) * [Math.pow (MosaicWidth / MosaicUnitWidth) (1 / 3)]
define arrowWidth : Math.min (MosaicWidth - SB / 2) arrowHeight define arrowWidth : Math.min (MosaicWidth - SB / 2) arrowHeight
@ -203,6 +203,10 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size) include : TriangleArrowHead x1 y1 x2 y2 (0.75 * size)
include : ArrowBar x1 y1 x2 y2 halfArrowSw include : ArrowBar x1 y1 x2 y2 halfArrowSw
define [WeightedTrigArrowShape sw w h] : lambda [x1 y1 x2 y2 size] : glyph-proc
include : TriangleArrowHead x1 y1 x2 y2 (0.75 * w * size) (0.75 * [fallback h w] * size)
include : ArrowBar x1 y1 x2 y2 (sw / 2) 0 (0.75 * [fallback h w] * size)
define [OpenArrowShape x1 y1 x2 y2 size] : glyph-proc define [OpenArrowShape x1 y1 x2 y2 size] : glyph-proc
local fine : Math.min [AdviceStroke 5] (size * 0.75 / 3) local fine : Math.min [AdviceStroke 5] (size * 0.75 / 3)
local mag : Math.hypot (y2 - y1) (x2 - x1) local mag : Math.hypot (y2 - y1) (x2 - x1)
@ -897,6 +901,49 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
BarbGroup 'barbArrowHeavy' 0x1F878 0.375 9 BarbGroup 'barbArrowHeavy' 0x1F878 0.375 9
BarbGroup 'barbArrowVeryHeavy' 0x1F880 0.375 10 BarbGroup 'barbArrowVeryHeavy' 0x1F880 0.375 10
do "Weighted Trig Arrows"
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define Size : GeometricSizes Geom
define eqHeight : Math.sqrt 3
define trigArrowSize : 0.75 * arrowHeadSize
define squatRange : 1.5 * Geom.Size * Size.VerySmall.size
define kSmall : 2 * Geom.Size * Size.VerySmall.size / trigArrowSize
define kMedium : 2 * Geom.Size * Size.Small.size / trigArrowSize
define [TrigGroupSquat prefix b sw w h] : begin
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Left"] [MangleUnicode : b + 0] (arrowMidX + squatRange) (SymbolMid) (arrowMidX - squatRange) (SymbolMid)
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Up"] [MangleUnicode : b + 1] (arrowMidX) (SymbolMid - squatRange) (arrowMidX) (SymbolMid + squatRange)
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Right"] [MangleUnicode : b + 2] (arrowMidX - squatRange) (SymbolMid) (arrowMidX + squatRange) (SymbolMid)
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Down"] [MangleUnicode : b + 3] (arrowMidX) (SymbolMid + squatRange) (arrowMidX) (SymbolMid - squatRange)
define [TrigGroup prefix b sw w h] : begin
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Left"] [MangleUnicode : b + 0] arrowRSB SymbolMid arrowSB SymbolMid
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Up"] [MangleUnicode : b + 1] arrowMidX arrowBot arrowMidX arrowTop
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Right"] [MangleUnicode : b + 2] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Down"] [MangleUnicode : b + 3] arrowMidX arrowTop arrowMidX arrowBot
TrigGroup 'trigArrowSmallHead' 0x1F800 [UnicodeWeightGrade 3 MosaicWidthScalar] Size.Small.size
TrigGroup 'trigArrowMediumHead' 0x1F804 [UnicodeWeightGrade 5 MosaicWidthScalar] Size.Medium.size
TrigGroup 'trigArrowLargeHead' 0x1F808 [UnicodeWeightGrade 7 MosaicWidthScalar] Size.Large.size
TrigGroup 'trigArrowSmallEqHead' 0x1F810 [UnicodeWeightGrade 3 MosaicWidthScalar] Size.Small.size (Size.Small.size * eqHeight)
TrigGroup 'trigArrowEqHead' 0x1F814 [UnicodeWeightGrade 4 MosaicWidthScalar] 1 eqHeight
TrigGroup 'trigArrowEqHeadHeavy' 0x1F818 [UnicodeWeightGrade 5 MosaicWidthScalar] 1 eqHeight
TrigGroup 'trigArrowLargeEqHeadHeavy' 0x1F81C [UnicodeWeightGrade 7 MosaicWidthScalar] Size.Large.size (Size.Large.size * eqHeight)
TrigGroup 'trigArrowNarrowShaft' 0x1F820 [UnicodeWeightGrade 3 MosaicWidthScalar] 1
TrigGroup 'trigArrowMediumShaft' 0x1F824 [UnicodeWeightGrade 5 MosaicWidthScalar] 1
TrigGroup 'trigArrowBoldShaft' 0x1F828 [UnicodeWeightGrade 7 MosaicWidthScalar] 1
TrigGroup 'trigArrowHeavyShaft' 0x1F82C [UnicodeWeightGrade 9 MosaicWidthScalar] 1
TrigGroup 'trigArrowVeryHeavyShaft' 0x1F830 [UnicodeWeightGrade 10 MosaicWidthScalar] 1
TrigGroup 'fingerPost' 0x1F834 (2 * (trigArrowSize - o)) 1
TrigGroup 'trigArrowHeavy' 0x1F844 (2 * (trigArrowSize - o)) kMedium
TrigGroupSquat 'trigArrowSquared' 0x1F838 (2 * Geom.Size * Size.VerySmall.size) kSmall
TrigGroupSquat 'trigArrowCompressed' 0x1F83C (2 * Geom.Size * Size.Small.size) kMedium kSmall
TrigGroupSquat 'trigArrowCompressedHeavy' 0x1F840 (2 * Geom.Size * Size.MediumSmall.size) kMedium kSmall
MkArrow [WeightedTrigArrowShape (2 * Geom.Size * Size.Medium.size) kMedium kSmall] [MangleName "trigArrowSquatBlackRight"] [MangleUnicode 0x27A7] (arrowMidX - squatRange) SymbolMid (arrowMidX + squatRange) SymbolMid
do "Round-stroke arrows" do "Round-stroke arrows"
define sw : UnicodeWeightGrade 9 MosaicWidthScalar define sw : UnicodeWeightGrade 9 MosaicWidthScalar
MkArrow [RoundArrow.Shape sw] [MangleName 'heavyRoundArrowRight'] [MangleUnicode 0x279C] arrowSB SymbolMid arrowRSB SymbolMid MkArrow [RoundArrow.Shape sw] [MangleName 'heavyRoundArrowRight'] [MangleUnicode 0x279C] arrowSB SymbolMid arrowRSB SymbolMid