Added several geometric shapes: /blacksquare, /dottedcircle, etc.
This commit is contained in:
parent
efa768e836
commit
efabd8597e
5 changed files with 97 additions and 9 deletions
|
@ -1,15 +1,22 @@
|
||||||
###### COMMON SHAPES
|
###### COMMON SHAPES
|
||||||
|
|
||||||
define [Ring u d l r] : begin {
|
define [Ring u d l r transformShiftOnly] : begin {
|
||||||
local my [[u + d] / 2]
|
local my [[u + d] / 2]
|
||||||
local mx [[l + r] / 2]
|
local mx [[l + r] / 2]
|
||||||
local s : new Stroke
|
local s : new Stroke
|
||||||
:.set-transform globalTransform
|
if [not transformShiftOnly] : s.set-transform globalTransform
|
||||||
:.start-from mx d
|
s.start-from mx d
|
||||||
:.cubic-to [mx + [l - mx] * CKAPPA] d l [my + [d - my] * CKAPPA] l my
|
:.cubic-to [mx + [l - mx] * CKAPPA] d l [my + [d - my] * CKAPPA] l my
|
||||||
:.cubic-to l [my + [u - my] * CKAPPA] [mx + [l - mx] * CKAPPA] u mx u
|
:.cubic-to l [my + [u - my] * CKAPPA] [mx + [l - mx] * CKAPPA] u mx u
|
||||||
:.cubic-to [mx + [r - mx] * CKAPPA] u r [my + [u - my] * CKAPPA] r my
|
:.cubic-to [mx + [r - mx] * CKAPPA] u r [my + [u - my] * CKAPPA] r my
|
||||||
:.cubic-to r [my + [d - my] * CKAPPA] [mx + [r - mx] * CKAPPA] d mx d
|
:.cubic-to r [my + [d - my] * CKAPPA] [mx + [r - mx] * CKAPPA] d mx d
|
||||||
|
if transformShiftOnly : begin {
|
||||||
|
local (.x mx1 .y my1) [tp globalTransform (.x mx .y my)]
|
||||||
|
foreach p [items-of s.points] : begin {
|
||||||
|
set p.x : p.x + mx1 - mx
|
||||||
|
set p.y : p.y + my1 - my
|
||||||
|
}
|
||||||
|
}
|
||||||
return s.points
|
return s.points
|
||||||
}
|
}
|
||||||
define [RingAt x y r] : Ring [y + r] [y - r] [x - r] [x + r]
|
define [RingAt x y r] : Ring [y + r] [y - r] [x - r] [x + r]
|
||||||
|
|
|
@ -123,11 +123,7 @@ create-glyph 'g' : glyph-construction {
|
||||||
assign-unicode 'g'
|
assign-unicode 'g'
|
||||||
include pMarks
|
include pMarks
|
||||||
|
|
||||||
include : list {
|
include : smallo XH [XH * GBARPOS - O] SB [RIGHTSB - 0.3 * SB]
|
||||||
Ring XO [XH * GBARPOS] SB [RIGHTSB - 0.3 * SB] SMALLSMOOTH
|
|
||||||
Ring [XO - STROKE] [[XH * GBARPOS] + STROKE] [SB + STROKE] [[RIGHTSB - 0.3 * SB] - STROKE] [SMALLSMOOTH - STROKE]
|
|
||||||
}
|
|
||||||
reverse-last
|
|
||||||
|
|
||||||
local gleftx [SB * 0.8 + O]
|
local gleftx [SB * 0.8 + O]
|
||||||
local grightx [RIGHTSB + SB * 0.1 - O]
|
local grightx [RIGHTSB + SB * 0.1 - O]
|
||||||
|
|
|
@ -1,5 +1,87 @@
|
||||||
###### GEOMETRIC SHAPES
|
###### GEOMETRIC SHAPES
|
||||||
|
|
||||||
|
### Standard geometric shapes
|
||||||
|
define squareRadius : [RIGHTSB - SB] / 2
|
||||||
|
define [hollowScale w] : [w - [adviceBlackness 5]] / w
|
||||||
|
define [hollow newid unicode oldid zx zy] : create-glyph newid : glyph-construction {
|
||||||
|
assign-unicode unicode
|
||||||
|
include glyphs.(oldid)
|
||||||
|
reverse-last
|
||||||
|
local zoom : hollowScale squareRadius
|
||||||
|
include : FlipAround MIDDLE parenMid [fallback zx zoom] [fallback zy zx zoom]
|
||||||
|
include glyphs.(oldid)
|
||||||
|
}
|
||||||
|
create-glyph 'blacksquare' : glyph-construction {
|
||||||
|
assign-unicode 0x25A0
|
||||||
|
start-from SB [parenMid + squareRadius]
|
||||||
|
line-to RIGHTSB [parenMid + squareRadius]
|
||||||
|
line-to RIGHTSB [parenMid - squareRadius]
|
||||||
|
line-to SB [parenMid - squareRadius]
|
||||||
|
}
|
||||||
|
create-glyph 'blackrectangle' : glyph-construction {
|
||||||
|
assign-unicode 0x25AC
|
||||||
|
start-from SB [parenMid + squareRadius / 1.5]
|
||||||
|
line-to RIGHTSB [parenMid + squareRadius / 1.5]
|
||||||
|
line-to RIGHTSB [parenMid - squareRadius / 1.5]
|
||||||
|
line-to SB [parenMid - squareRadius / 1.5]
|
||||||
|
}
|
||||||
|
create-glyph 'blacklongrectangle' : glyph-construction {
|
||||||
|
assign-unicode 0x25AE
|
||||||
|
start-from SB [parenMid + squareRadius * 1.5]
|
||||||
|
line-to RIGHTSB [parenMid + squareRadius * 1.5]
|
||||||
|
line-to RIGHTSB [parenMid - squareRadius * 1.5]
|
||||||
|
line-to SB [parenMid - squareRadius * 1.5]
|
||||||
|
}
|
||||||
|
create-glyph 'blacktriangleup' : glyph-construction {
|
||||||
|
assign-unicode 0x25B2
|
||||||
|
start-from MIDDLE [parenMid + squareRadius]
|
||||||
|
line-to RIGHTSB [parenMid - squareRadius]
|
||||||
|
line-to SB [parenMid - squareRadius]
|
||||||
|
}
|
||||||
|
create-glyph 'blackdiamond' : glyph-construction {
|
||||||
|
assign-unicode 0x25C6
|
||||||
|
start-from MIDDLE [parenMid + squareRadius]
|
||||||
|
line-to RIGHTSB parenMid
|
||||||
|
line-to MIDDLE [parenMid - squareRadius]
|
||||||
|
line-to SB parenMid
|
||||||
|
}
|
||||||
|
create-glyph 'blacktriangledown' : glyph-construction {
|
||||||
|
assign-unicode 0x25BC
|
||||||
|
start-from MIDDLE [parenMid - squareRadius]
|
||||||
|
line-to SB [parenMid + squareRadius]
|
||||||
|
line-to RIGHTSB [parenMid + squareRadius]
|
||||||
|
}
|
||||||
|
create-glyph 'blackcircle' : glyph-construction {
|
||||||
|
assign-unicode 0x25CF
|
||||||
|
include : list : Ring [parenMid + squareRadius] [parenMid - squareRadius] SB RIGHTSB
|
||||||
|
}
|
||||||
|
create-glyph 'dottedcircle' : glyph-construction {
|
||||||
|
assign-unicode 0x25CC
|
||||||
|
local n 12
|
||||||
|
local fine : [adviceBlackness 5] / 2
|
||||||
|
foreach j [range 0 n] : begin {
|
||||||
|
local angle : Math.PI * 2 * j / n
|
||||||
|
local cx : MIDDLE + [RIGHTSB - MIDDLE] * [Math.cos angle]
|
||||||
|
local cy : [XH / 2] + [RIGHTSB - MIDDLE] * [Math.sin angle]
|
||||||
|
include : list : Ring [cy + fine] [cy - fine] [cx - fine] [cx + fine] true
|
||||||
|
}
|
||||||
|
apply-transform : Upright
|
||||||
|
apply-transform : Translate 0 [parenMid - [XH / 2]]
|
||||||
|
apply-transform : Italify
|
||||||
|
include eMarks
|
||||||
|
foreach k [items-of : Object.keys this.anchors] : begin {
|
||||||
|
set this.anchors.(k).x : this.anchors.(k).x + [parenMid - [XH / 2]] * globalTransform.yx
|
||||||
|
set this.anchors.(k).y : this.anchors.(k).y + [parenMid - [XH / 2]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hollow 'whitesquare' 0x25A1 'blacksquare'
|
||||||
|
hollow 'whiterectangle' 0x25AD 'blackrectangle' [hollowScale squareRadius] [hollowScale [squareRadius / 1.5]]
|
||||||
|
hollow 'whitelongrectangle' 0x25AF 'blacklongrectangle' [hollowScale squareRadius] [hollowScale [squareRadius * 1.5]]
|
||||||
|
hollow 'whitecircle' 0x25CB 'blackcircle'
|
||||||
|
hollow 'whitebullet' 0x25E6 'bullet' [hollowScale [PERIODSIZE - O]]
|
||||||
|
hollow 'whitediamond' 0x25C7 'blackdiamond'
|
||||||
|
|
||||||
### Blocks
|
### Blocks
|
||||||
create-glyph 'fullblock' : glyph-construction {
|
create-glyph 'fullblock' : glyph-construction {
|
||||||
assign-unicode 0x2588
|
assign-unicode 0x2588
|
||||||
|
|
|
@ -40,7 +40,7 @@ define regular (
|
||||||
.family 'Iosevka'
|
.family 'Iosevka'
|
||||||
.style 'Regular'
|
.style 'Regular'
|
||||||
.weight 400
|
.weight 400
|
||||||
.version 'r0.0.14'
|
.version 'r0.0.15'
|
||||||
.variantSelector (.)
|
.variantSelector (.)
|
||||||
.copyright 'Copyright (c) 2015 Belleve Invis.'
|
.copyright 'Copyright (c) 2015 Belleve Invis.'
|
||||||
)
|
)
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Iosevka</title>
|
<title>Iosevka</title>
|
||||||
<style>
|
<style>
|
||||||
|
html {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: IosevkaWEB;
|
font-family: IosevkaWEB;
|
||||||
src: url(iosevka-regular.woff) format(woff), url(iosevka-regular.ttf) format(truetype);
|
src: url(iosevka-regular.woff) format(woff), url(iosevka-regular.ttf) format(truetype);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue