Compare commits
28 Commits
Author | SHA1 | Date |
---|---|---|
Jongmin Kim | f8c03c92d8 | 4 years ago |
Jongmin Kim | 4ef5c9cd3b | 4 years ago |
Jongmin Kim | ff4d798dd2 | 5 years ago |
Jongmin Kim | 701367e920 | 5 years ago |
Jongmin Kim | 970b9fe72d | 5 years ago |
Jongmin Kim | bf45eee255 | 5 years ago |
Jongmin Kim | f5a4f04af5 | 5 years ago |
Jongmin Kim | e1ccff54c3 | 5 years ago |
Jongmin Kim | 53ad7f692d | 5 years ago |
Jongmin Kim | 21408446e6 | 5 years ago |
Jongmin Kim | 852fe8f242 | 5 years ago |
Jongmin Kim | dc4794314c | 5 years ago |
Jongmin Kim | 544c1b60a9 | 5 years ago |
Jongmin Kim | 076889f8e3 | 5 years ago |
Jongmin Kim | 967d1ed026 | 5 years ago |
Jongmin Kim | 527621f7be | 5 years ago |
Jongmin Kim | f025cd2b5a | 5 years ago |
Jongmin Kim | 6bdf4fce89 | 5 years ago |
Jongmin Kim | 920bc2b2d0 | 5 years ago |
Jongmin Kim | cec4733ba8 | 5 years ago |
0xflotus | 7e7d8b85cb | 5 years ago |
Jongmin Kim | 2ab1eb9300 | 5 years ago |
Jongmin Kim | abec540f09 | 5 years ago |
Jongmin Kim | e542c8b317 | 5 years ago |
Jongmin Kim | f5f35d50c7 | 5 years ago |
Jongmin Kim | a231bdb80a | 5 years ago |
Jongmin Kim | 6acf8ddb84 | 5 years ago |
Jongmin Kim | 55207d1e48 | 5 years ago |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
|
||||
examples/.DS_Store |
||||
examples/data/.DS_Store |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,75 @@
@@ -0,0 +1,75 @@
|
||||
const pixelRatio = 2; |
||||
let isDown = false, moveX = 0, moveY = 0, offsetX = 0, offsetY = 0; |
||||
let canvas, ctx; |
||||
let renderer, stage; |
||||
let sw = document.body.clientWidth; |
||||
let sh = document.body.clientHeight; |
||||
|
||||
function generateCanvas() { |
||||
canvas = document.createElement('canvas'); |
||||
document.body.appendChild(canvas); |
||||
ctx = canvas.getContext("2d"); |
||||
|
||||
window.addEventListener('resize', canvasResize, false); |
||||
canvasResize(); |
||||
|
||||
moveEvent(canvas); |
||||
} |
||||
|
||||
function canvasResize() { |
||||
sw = document.body.clientWidth; |
||||
sh = document.body.clientHeight; |
||||
|
||||
canvas.width = sw * pixelRatio; |
||||
canvas.height = sh * pixelRatio; |
||||
canvas.style.width = sw + 'px'; |
||||
canvas.style.height = sh + 'px'; |
||||
ctx.scale(pixelRatio, pixelRatio); |
||||
} |
||||
|
||||
function generatePixi(bgcolor) { |
||||
renderer = new PIXI.Renderer({ |
||||
width: sw, |
||||
height: sh, |
||||
antialias: true, |
||||
transparent: false, |
||||
autoDensity: true, |
||||
resolution: pixelRatio,//window.devicePixelRatio > 1 ? 2 : 1,
|
||||
powerPreference: "high-performance", |
||||
backgroundColor: bgcolor |
||||
}); |
||||
document.body.appendChild(renderer.view); |
||||
stage = new PIXI.Container(); |
||||
|
||||
window.addEventListener('resize', pixiResize, false); |
||||
pixiResize(); |
||||
|
||||
moveEvent(renderer.view); |
||||
} |
||||
|
||||
function pixiResize() { |
||||
sw = document.body.clientWidth; |
||||
sh = document.body.clientHeight; |
||||
|
||||
renderer.resize(sw, sh); |
||||
} |
||||
|
||||
function moveEvent(canvas) { |
||||
const hammer = new Hammer(canvas); |
||||
hammer.add(new Hammer.Pan({direction: Hammer.DIRECTION_ALL, threshold: 0})); |
||||
hammer.on("pan", (e) => { |
||||
moveX = e.deltaX + offsetX; |
||||
moveY = e.deltaY + offsetY; |
||||
if (e.isFinal) { |
||||
offsetX = moveX; |
||||
offsetY = moveY; |
||||
} |
||||
}); |
||||
} |
||||
|
||||
function getSize(size) { |
||||
let ratio = Math.sqrt(sw * sw + sh * sh) / 1800; |
||||
if (ratio > 1) ratio = 1; |
||||
else if (ratio < 0.5) ratio = 0.5; |
||||
return size * ratio; |
||||
} |
@ -0,0 +1,728 @@
@@ -0,0 +1,728 @@
|
||||
import { |
||||
generateFontData, |
||||
ROTATE_HORIZONTAL, |
||||
ROTATE_VERTICAL, |
||||
ROTATE_NONE, |
||||
getR, |
||||
getCurveR |
||||
} from './util.js'; |
||||
import { |
||||
getLatin1, |
||||
getLatin2, |
||||
getLatin3, |
||||
getLatin4, |
||||
getLatin5, |
||||
getLatin6, |
||||
getLatin7, |
||||
getLatin8, |
||||
getLatin9, |
||||
getLatin10, |
||||
getLatin11, |
||||
getLatin12, |
||||
getLatin13, |
||||
getLatin14 |
||||
} from './latinutil.js'; |
||||
import { |
||||
DATA_UA, |
||||
DATA_UC, |
||||
DATA_UD, |
||||
DATA_UE, |
||||
DATA_UG, |
||||
DATA_UH, |
||||
DATA_UI, |
||||
DATA_UJ, |
||||
DATA_UN, |
||||
DATA_UO, |
||||
DATA_US, |
||||
DATA_UU, |
||||
DATA_UY |
||||
} from './upper.js'; |
||||
import { |
||||
DATA_LA, |
||||
DATA_LC, |
||||
DATA_LD, |
||||
DATA_LE, |
||||
DATA_LG, |
||||
DATA_LH, |
||||
DATA_LN, |
||||
DATA_LO, |
||||
DATA_LS, |
||||
DATA_LU, |
||||
DATA_LY |
||||
} from './lower.js'; |
||||
|
||||
const DATA_LI = [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 0, 352, { |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
['l', 0, 130, { |
||||
y: -3 |
||||
}], |
||||
] |
||||
}]; |
||||
|
||||
const DATA_LJ = [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 0 - 115.9, 317 + 127, { |
||||
x: 0.4, |
||||
y: 0.63, |
||||
r: getCurveR(0 - 115.9, 317 + 127, 12.6 - 115.9, 327.4 + 127, 29.6 - 115.9, 333.2 + 127, 45.9 - 115.9, 334.2 + 127, 0), |
||||
f: 1 |
||||
}], |
||||
['b', 12.6 - 115.9, 327.4 + 127, 29.6 - 115.9, 333.2 + 127, 45.9 - 115.9, 334.2 + 127, { |
||||
x: 0.4, |
||||
y: 0.63, |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 84.5 - 115.9, 336.5 + 127, 0, 308.1 + 127, 0, 269.4 + 127, { |
||||
x: 0.4, |
||||
y: 0.63, |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['l', 0, 0 + 127 + 3, { |
||||
y: -3 |
||||
}], |
||||
] |
||||
}]; |
||||
|
||||
export const LATIN = { |
||||
'Æ': generateFontData( |
||||
996, 426, 352, |
||||
0, 0, 0, 0, |
||||
[{ |
||||
d: -1, |
||||
v: [ |
||||
['m', 426.0, 0.0, { |
||||
x: 0, |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['l', 234.0, 0.0, { |
||||
x: 0.5, |
||||
f: 1, |
||||
r: getR(234.0, 0.0, .0, 352.0), |
||||
}], |
||||
['l', 0.0, 352.0, { |
||||
x: 0.5, |
||||
y: 0.5, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}, { |
||||
d: -1, |
||||
v: [ |
||||
['m', 234.0, 0.0, { |
||||
x: 0.5, |
||||
p: 1, |
||||
}], |
||||
['l', 234.0, 352.0, { |
||||
f: 1, |
||||
x: 0.5 |
||||
}], |
||||
['l', 426.0, 352.0, { |
||||
f: 1, |
||||
x: 0 |
||||
}] |
||||
] |
||||
}, { |
||||
d: -1, |
||||
v: [ |
||||
['m', 76.4, 237.0, { |
||||
r: ROTATE_VERTICAL, |
||||
p: 1, |
||||
}], |
||||
['l', 234.0, 237.0, { |
||||
f: 1, |
||||
r: ROTATE_VERTICAL, |
||||
p: 1, |
||||
}] |
||||
] |
||||
}, { |
||||
d: -1, |
||||
v: [ |
||||
['m', 234.0, 164.0, { |
||||
r: ROTATE_VERTICAL, |
||||
p: 1, |
||||
x: 0.5 |
||||
}], |
||||
['l', 414.0, 164.0, { |
||||
f: 1, |
||||
x: 0 |
||||
}] |
||||
] |
||||
}] |
||||
), |
||||
'æ': generateFontData( |
||||
1000, 232 + 225.5, 232, |
||||
0, 0, -64, -64, |
||||
[{ |
||||
d: -1, |
||||
v: [ |
||||
['m', 232, 8, { |
||||
y: -3.4, |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['l', 232, 116, { |
||||
r: ROTATE_NONE |
||||
}], |
||||
['b', 232, 180.1, 180.1, 232, 116, 232, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 51.9, 232, 0, 180.1, 0, 116, { |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['b', 0, 51.9, 51.9, 0, 116, 0, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 180.1, 0, 232, 51.9, 232, 116, { |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['l', 232, 224, { |
||||
y: -0.1, |
||||
r: ROTATE_HORIZONTAL, |
||||
f: 1 |
||||
}] |
||||
] |
||||
}, { |
||||
d: 1, |
||||
v: [ |
||||
['m', 211.6 + 232, 182.9, { |
||||
r: getCurveR(211.6 + 232, 182.9, 191.1 + 232, 213.2, 156.1 + 232, 233.1, 116.5 + 232, 233.1, 0), |
||||
f: 1 |
||||
}], |
||||
['b', 191.1 + 232, 213.2, 156.1 + 232, 233.1, 116.5 + 232, 233.1, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 52.4 + 232, 233.1, 0.5 + 232, 181.2, 0.5 + 232, 117.1, { |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['b', 0.5 + 232, 53, 52.4 + 232, 1.1, 116.5 + 232, 1.1, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 176.4 + 232, 1.1, 224.9 + 232, 47.2, 225.5 + 232, 106.1, { |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['l', 0.5 + 232, 106.1, { |
||||
r: ROTATE_HORIZONTAL, |
||||
p: 1 |
||||
}], |
||||
] |
||||
}] |
||||
), |
||||
'À': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin1(145, -50)) |
||||
), |
||||
'Á': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin2(145, -50)) |
||||
), |
||||
'Â': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin3(145, -100)) |
||||
), |
||||
'Ã': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin4(145, -90)) |
||||
), |
||||
'Ä': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin5(145, -70)) |
||||
), |
||||
'Å': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin7(0, 0)) |
||||
), |
||||
'Ă': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin6(145, -110)) |
||||
), |
||||
'Ą': generateFontData( |
||||
620, 290, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UA)).concat(getLatin10(290, 352)) |
||||
), |
||||
'à': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin1(116, -60)) |
||||
), |
||||
'á': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin2(116, -60)) |
||||
), |
||||
'â': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin3(116, -110)) |
||||
), |
||||
'ã': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin4(116, -100)) |
||||
), |
||||
'ä': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin5(116, -80)) |
||||
), |
||||
'å': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin7(-30, 0)) |
||||
), |
||||
'ă': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin6(116, -120)) |
||||
), |
||||
'ą': generateFontData( |
||||
600, 232, 232, |
||||
10, 2, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LA)).concat(getLatin10(232, 224)) |
||||
), |
||||
'Ć': generateFontData( |
||||
700, 293.1, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UC)).concat(getLatin1(180, -60)) |
||||
), |
||||
'Ĉ': generateFontData( |
||||
700, 293.1, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UC)).concat(getLatin3(180, -110)) |
||||
), |
||||
'Ċ': generateFontData( |
||||
700, 293.1, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UC)).concat(getLatin11(180, -80)) |
||||
), |
||||
'Č': generateFontData( |
||||
700, 293.1, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UC)).concat(getLatin12(180, -110)) |
||||
), |
||||
'Ç': generateFontData( |
||||
700, 293.1, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UC)).concat(getLatin9(180, 360)) |
||||
), |
||||
'ć': generateFontData( |
||||
520, 212.1, 233.1, |
||||
2, -10, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LC)).concat(getLatin1(116.5, 1.1 - 70)) |
||||
), |
||||
'ĉ': generateFontData( |
||||
520, 212.1, 233.1, |
||||
2, -10, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LC)).concat(getLatin3(116.5, 1.1 - 120)) |
||||
), |
||||
'ċ': generateFontData( |
||||
520, 212.1, 233.1, |
||||
2, -10, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LC)).concat(getLatin11(116.5, 1.1 - 90)) |
||||
), |
||||
'č': generateFontData( |
||||
520, 212.1, 233.1, |
||||
2, -10, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LC)).concat(getLatin12(116.5, 1.1 - 120)) |
||||
), |
||||
'ç': generateFontData( |
||||
520, 212.1, 233.1, |
||||
2, -10, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LC)).concat(getLatin9(116.5, 233.1)) |
||||
), |
||||
'Đ': generateFontData( |
||||
721, 270, 352, |
||||
-10, -10, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UD)).concat(getLatin8(0, 352 / 2)) |
||||
), |
||||
'Ď': generateFontData( |
||||
721, 270, 352, |
||||
-10, -10, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UD)).concat(getLatin12(100, -110)) |
||||
), |
||||
'ď': generateFontData( |
||||
600, 232, 352, |
||||
10, 2, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LD)).concat(getLatin13(300, 0)) |
||||
), |
||||
'đ': generateFontData( |
||||
600, 232, 352, |
||||
10, 2, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LD)).concat(getLatin8(180, 40)) |
||||
), |
||||
'È': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin1(96, -60)) |
||||
), |
||||
'É': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin2(96, -60)) |
||||
), |
||||
'Ê': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin3(96, -110)) |
||||
), |
||||
'Ë': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin5(96, -80)) |
||||
), |
||||
'Ē': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin14(96, -80)) |
||||
), |
||||
'Ĕ': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin6(96, -120)) |
||||
), |
||||
'Ė': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin11(96, -80)) |
||||
), |
||||
'Ě': generateFontData( |
||||
520, 192, 352, |
||||
-5, -80, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UE)).concat(getLatin12(96, -110)) |
||||
), |
||||
'è': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin1(112, -60)) |
||||
), |
||||
'é': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin2(112, -60)) |
||||
), |
||||
'ê': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin3(112, -110)) |
||||
), |
||||
'ë': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin5(112, -80)) |
||||
), |
||||
'ē': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin14(112, -80)) |
||||
), |
||||
'ĕ': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin6(112, -120)) |
||||
), |
||||
'ė': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin11(112, -90)) |
||||
), |
||||
'ě': generateFontData( |
||||
570, 225.5, 233.1, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LE)).concat(getLatin12(112, -120)) |
||||
), |
||||
'Ĝ': generateFontData( |
||||
840, 352, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UG)).concat(getLatin3(180, -110)) |
||||
), |
||||
'Ğ': generateFontData( |
||||
840, 352, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UG)).concat(getLatin6(180, -120)) |
||||
), |
||||
'Ġ': generateFontData( |
||||
840, 352, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UG)).concat(getLatin11(180, -80)) |
||||
), |
||||
'Ģ': generateFontData( |
||||
840, 352, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UG)).concat(getLatin9(180, 360)) |
||||
), |
||||
'ĝ': generateFontData( |
||||
600, 232, 338, |
||||
10, 2, -117, -117, |
||||
JSON.parse(JSON.stringify(DATA_LG)).concat(getLatin3(116, 1.1 - 120)) |
||||
), |
||||
'ğ': generateFontData( |
||||
600, 232, 338, |
||||
10, 2, -117, -117, |
||||
JSON.parse(JSON.stringify(DATA_LG)).concat(getLatin6(116, -120)) |
||||
), |
||||
'ġ': generateFontData( |
||||
600, 232, 338, |
||||
10, 2, -117, -117, |
||||
JSON.parse(JSON.stringify(DATA_LG)).concat(getLatin11(116, -90)) |
||||
), |
||||
'ģ': generateFontData( |
||||
600, 232, 338, |
||||
10, 2, -117, -117, |
||||
JSON.parse(JSON.stringify(DATA_LG)).concat(getLatin2(116, -70)) |
||||
), |
||||
'Ĥ': generateFontData( |
||||
684, 232, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UH)).concat(getLatin3(232 / 2, -110)) |
||||
), |
||||
'ĥ': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LH)).concat(getLatin3(182 / 2, -110)) |
||||
), |
||||
'Ì': generateFontData( |
||||
249, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UI)).concat(getLatin1(0, -60)) |
||||
), |
||||
'Í': generateFontData( |
||||
249, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UI)).concat(getLatin2(0, -60)) |
||||
), |
||||
'Î': generateFontData( |
||||
249, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UI)).concat(getLatin3(0, -110)) |
||||
), |
||||
'Ï': generateFontData( |
||||
249, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UI)).concat(getLatin5(0, -80)) |
||||
), |
||||
'ì': generateFontData( |
||||
200, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LI)).concat(getLatin1(0, -60 + 130)) |
||||
), |
||||
'í': generateFontData( |
||||
200, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LI)).concat(getLatin2(0, -60 + 130)) |
||||
), |
||||
'î': generateFontData( |
||||
200, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LI)).concat(getLatin3(0, -120 + 130)) |
||||
), |
||||
'ï': generateFontData( |
||||
200, 0, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LI)).concat(getLatin5(0, -80 + 130)) |
||||
), |
||||
'Ĵ': generateFontData( |
||||
472, 172.5, 355.5, |
||||
10, 20, -2, -2, |
||||
JSON.parse(JSON.stringify(DATA_UJ)).concat(getLatin3(172.5, -110)) |
||||
), |
||||
'ĵ': generateFontData( |
||||
220, 115.9, 352, |
||||
-60, -60, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LJ)).concat(getLatin3(0, -110 + 130)) |
||||
), |
||||
'Ñ': generateFontData( |
||||
721, 250, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UN)).concat(getLatin4(250 / 2, -100)) |
||||
), |
||||
'ñ': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LN)).concat(getLatin4(182 / 2, -100 + 130)) |
||||
), |
||||
'Ò': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat(getLatin1(180, -60)) |
||||
), |
||||
'Ó': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat(getLatin2(180, -60)) |
||||
), |
||||
'Ô': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat(getLatin3(180, -110)) |
||||
), |
||||
'Õ': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat(getLatin4(180, -100)) |
||||
), |
||||
'Ö': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat(getLatin5(180, -80)) |
||||
), |
||||
'Ø': generateFontData( |
||||
850, 360, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UO)).concat([{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 0, 360, { |
||||
r: getR(0, 360, 360, 0), |
||||
f: 1, |
||||
x: 0, |
||||
y: 1 |
||||
}], |
||||
['l', 360, 0, { |
||||
x: 0, |
||||
y: 1 |
||||
}] |
||||
] |
||||
}]) |
||||
), |
||||
'ò': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat(getLatin1(116, -60)) |
||||
), |
||||
'ó': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat(getLatin2(116, -60)) |
||||
), |
||||
'ô': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat(getLatin3(116, -110)) |
||||
), |
||||
'õ': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat(getLatin4(116, -100)) |
||||
), |
||||
'ö': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat(getLatin5(116, -80)) |
||||
), |
||||
'ø': generateFontData( |
||||
580, 232, 232, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LO)).concat([{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 0, 232, { |
||||
r: getR(0, 232, 232, 0), |
||||
f: 1, |
||||
x: 0, |
||||
y: 1 |
||||
}], |
||||
['l', 232, 0, { |
||||
x: 0, |
||||
y: 1 |
||||
}] |
||||
] |
||||
}]) |
||||
), |
||||
'Ŝ': generateFontData( |
||||
560, 224, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_US)).concat(getLatin3(112.4, -110)) |
||||
), |
||||
'ŝ': generateFontData( |
||||
400, 224 * 0.642, 360 * 0.642, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LS)).concat(getLatin3(112.4 * 0.642, -110)) |
||||
), |
||||
'Ş': generateFontData( |
||||
560, 224, 360, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_US)).concat(getLatin9(110.3, 360)) |
||||
), |
||||
'ş': generateFontData( |
||||
400, 224 * 0.642, 360 * 0.642, |
||||
0, 0, -64, -64, |
||||
JSON.parse(JSON.stringify(DATA_LS)).concat(getLatin9(110.3 * 0.642, 360 * 0.642)) |
||||
), |
||||
'Ù': generateFontData( |
||||
712, 250, 355, |
||||
0, 0, -0.5, -0.5, |
||||
JSON.parse(JSON.stringify(DATA_UU)).concat(getLatin1(125, -50)) |
||||
), |
||||
'Ú': generateFontData( |
||||
712, 250, 355, |
||||
0, 0, -0.5, -0.5, |
||||
JSON.parse(JSON.stringify(DATA_UU)).concat(getLatin2(125, -50)) |
||||
), |
||||
'Û': generateFontData( |
||||
712, 250, 355, |
||||
0, 0, -0.5, -0.5, |
||||
JSON.parse(JSON.stringify(DATA_UU)).concat(getLatin3(125, -100)) |
||||
), |
||||
'Ŭ': generateFontData( |
||||
712, 250, 355, |
||||
0, 0, -0.5, -0.5, |
||||
JSON.parse(JSON.stringify(DATA_UU)).concat(getLatin6(125, -110)) |
||||
), |
||||
'Ü': generateFontData( |
||||
712, 250, 355, |
||||
0, 0, -0.5, -0.5, |
||||
JSON.parse(JSON.stringify(DATA_UU)).concat(getLatin5(125, -70)) |
||||
), |
||||
'ù': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LU)).concat(getLatin1(91, -60 + 130)) |
||||
), |
||||
'ú': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LU)).concat(getLatin2(91, -60 + 130)) |
||||
), |
||||
'û': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LU)).concat(getLatin3(91, -110 + 130)) |
||||
), |
||||
'ŭ': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LU)).concat(getLatin6(91, -120 + 130)) |
||||
), |
||||
'ü': generateFontData( |
||||
520, 182, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_LU)).concat(getLatin5(91, -80 + 130)) |
||||
), |
||||
'Ý': generateFontData( |
||||
673, 270, 352, |
||||
0, 0, 0, 0, |
||||
JSON.parse(JSON.stringify(DATA_UY)).concat(getLatin2(135, -60)) |
||||
), |
||||
'ý': generateFontData( |
||||
500, 225.5, 331.5, |
||||
10, 10, -119, -119, |
||||
JSON.parse(JSON.stringify(DATA_LY)).concat(getLatin2(116.3, -60)) |
||||
), |
||||
'ÿ': generateFontData( |
||||
500, 225.5, 331.5, |
||||
10, 10, -119, -119, |
||||
JSON.parse(JSON.stringify(DATA_LY)).concat(getLatin5(116.3, -90)) |
||||
), |
||||
}; |
@ -0,0 +1,338 @@
@@ -0,0 +1,338 @@
|
||||
import { |
||||
ROTATE_HORIZONTAL, |
||||
ROTATE_VERTICAL, |
||||
VERTEX_GAP2, |
||||
getR, |
||||
getCurveR |
||||
} from './util.js'; |
||||
|
||||
//À
|
||||
export function getLatin1(x, y) { |
||||
const tx = x; |
||||
const ty = -60 + y; |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', -40 + tx, ty, { |
||||
x: 0, |
||||
y: 0, |
||||
r: getR(-40 + tx, ty, 0 + tx, 60 + ty) |
||||
}], |
||||
['l', 0 + tx, 60 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Á
|
||||
export function getLatin2(x, y) { |
||||
const tx = x; |
||||
const ty = -60 + y; |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', 40 + tx, ty, { |
||||
x: 0, |
||||
y: 0, |
||||
r: getR(40 + tx, ty, 0 + tx, 60 + ty) |
||||
}], |
||||
['l', 0 + tx, 60 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Â
|
||||
export function getLatin3(x, y) { |
||||
const tx = -68 + x; |
||||
const ty = 0 + y; |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', 0 + tx, 50 + ty, { |
||||
r: getR(0 + tx, 50 + ty, 68 - VERTEX_GAP2 + tx, 0 + ty), |
||||
y: 0, |
||||
x: 0 |
||||
}], |
||||
['l', 68 - VERTEX_GAP2 + tx, 0 + ty, { |
||||
r: getR(0 + tx, 50 + ty, 68 - VERTEX_GAP2 + tx, 0 + ty), |
||||
y: 0, |
||||
x: 0, |
||||
f: 1, |
||||
}], |
||||
['l', 68 + VERTEX_GAP2 + tx, 0 + ty, { |
||||
r: getR(68 + VERTEX_GAP2 + tx, 0 + ty, 68 + 68 + tx, 50 + ty), |
||||
y: 0, |
||||
x: 0, |
||||
f: 1, |
||||
v: 1 |
||||
}], |
||||
['l', 68 + 68 + tx, 50 + ty, { |
||||
y: 0, |
||||
x: 0, |
||||
f: 1 |
||||
}] |
||||
] |
||||
}]; |
||||
} |
||||
//Ã
|
||||
export function getLatin4(x, y) { |
||||
const tx = x - 76.24; |
||||
const ty = y; |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 159.52 + tx, 16.56 + ty, { |
||||
x: -1, |
||||
y: -0.2, |
||||
r: getCurveR(159.52 + tx, 16.56 + ty, 150.08 + tx, 29.28 + ty, 134.56 + tx, 37.68 + ty, 118.56 + tx, 37.68 + ty, 0), |
||||
f: 1 |
||||
}], |
||||
['b', 150.08 + tx, 29.28 + ty, 134.56 + tx, 37.68 + ty, 118.56 + tx, 37.68 + ty, { |
||||
x: -1, |
||||
y: -0.2, |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 103.28 + tx, 37.68 + ty, 89.68 + tx, 29.28 + ty, 76.24 + tx, 20.4 + ty, { |
||||
x: -1, |
||||
y: -0.2 |
||||
}], |
||||
['b', 61.44 + tx, 10.56 + ty, 47.28 + tx, 0 + ty, 31.68 + tx, 0 + ty, { |
||||
x: -1, |
||||
y: -0.2, |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 17.84 + tx, 0 + ty, 8.72 + tx, 7.12 + ty, 0 + tx, 16 + ty, { |
||||
x: -1, |
||||
y: -0.2 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Ä
|
||||
export function getLatin5(x, y) { |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['a', -50 + x, y, { |
||||
x: 0, |
||||
y: 0 |
||||
}], |
||||
] |
||||
}, { |
||||
d: 1, |
||||
v: [ |
||||
['a', 50 + x, y, { |
||||
x: 0, |
||||
y: 0 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Ŭ
|
||||
export function getLatin6(x, y) { |
||||
const tx = x - 57; |
||||
const ty = y; |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 112.7 + tx, 0.0 + ty, { |
||||
r: getCurveR(112.7 + tx, 0.0 + ty + tx, 10.1 + ty, 110.1 + tx, 19.3 + ty, 105.0 + tx, 27.7 + ty, 0), |
||||
x: 0, |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
['b', 112.7 + tx, 10.1 + ty, 110.1 + tx, 19.3 + ty, 105.0 + tx, 27.7 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
['b', 99.8 + tx, 36.1 + ty, 92.9 + tx, 42.8 + ty, 84.3 + tx, 47.7 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
['b', 75.7 + tx, 52.6 + ty, 66.7 + tx, 55.0 + ty, 57.3 + tx, 55.0 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
['b', 47.5 + tx, 55.0 + ty, 38.3 + tx, 52.6 + ty, 29.6 + tx, 47.7 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
['b', 20.8 + tx, 42.8 + ty, 13.8 + tx, 36.1 + ty, 8.5 + tx, 27.7 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
['b', 3.2 + tx, 19.3 + ty, 0.5 + tx, 10.1 + ty, 0.5 + tx, 0.0 + ty, { |
||||
x: 0, |
||||
y: 0, |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Å
|
||||
export function getLatin7(x, y) { |
||||
const tx = 88 + x; |
||||
const ty = -116 + y; |
||||
const scale = 0.5; |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', 232 * scale + tx, 116 * scale + ty, { |
||||
r: ROTATE_HORIZONTAL, |
||||
p: 1, |
||||
f: 1 |
||||
}], |
||||
['b', 232 * scale + tx, 180.1 * scale + ty, 180.1 * scale + tx, 232 * scale + ty, 116 * scale + tx, 232 * scale + ty, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 51.9 * scale + tx, 232 * scale + ty, 0 * scale + tx, 180.1 * scale + ty, 0 * scale + tx, 116 * scale + ty, { |
||||
r: ROTATE_HORIZONTAL |
||||
}], |
||||
['b', 0 * scale + tx, 51.9 * scale + ty, 51.9 * scale + tx, 0 * scale + ty, 116 * scale + tx, 0 * scale + ty, { |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['b', 180.1 * scale + tx, 0 * scale + ty, 232 * scale + tx, 51.9 * scale + ty, 232 * scale + tx, 116 * scale + ty, { |
||||
r: ROTATE_HORIZONTAL, |
||||
c: 1 |
||||
}], |
||||
] |
||||
}] |
||||
} |
||||
//Ð
|
||||
export function getLatin8(x, y) { |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', x - 40, y, { |
||||
x: 0, |
||||
y: 1, |
||||
r: ROTATE_VERTICAL |
||||
}], |
||||
['l', 100 + x, y, { |
||||
x: 0, |
||||
y: 1, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}] |
||||
} |
||||
//Ç
|
||||
export function getLatin9(x, y) { |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', x, y, { |
||||
p: 1 |
||||
}], |
||||
['b', 9.3 + x, 11.6 + y, 15.6 + x, 27.1 + y, 15.6 + x, 40.9 + y], |
||||
['b', 15.6 + x, 83.3 + y, -18.2 + x, 107.8 + y, -59.5 + x, 107.8 + y], |
||||
['b', -70.9 + x, 107.8 + y, -82.9 + x, 106.2 + y, -93.7 + x, 102.7 + y, { |
||||
x: 0.5, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}] |
||||
} |
||||
//Ą
|
||||
export function getLatin10(x, y) { |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', x, y, { |
||||
p: 1 |
||||
}], |
||||
['b', 22.6 - 42.2 + x, 14.8 + y, -42.2 + x, 37.9 + y, -42.2 + x, 64.1 + y], |
||||
['b', -42.2 + x, 100.3 + y, 30.2 - 42.2 + x, 118.8 + y, 63.6 - 42.2 + x, 118.8 + y], |
||||
['b', 68.3 - 42.2 + x, 118.8 + y, 72.9 - 42.2 + x, 118.4 + y, 77.4 - 42.2 + x, 117.6 + y, { |
||||
x: 0.5, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}] |
||||
} |
||||
|
||||
//Ċ
|
||||
export function getLatin11(x, y) { |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['a', x, y, { |
||||
x: 0, |
||||
y: 0 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
|
||||
//Č
|
||||
export function getLatin12(x, y) { |
||||
const tx = -68 + x; |
||||
const ty = y; |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', 0 + tx, ty, { |
||||
r: getR(0 + tx, ty, 68 - VERTEX_GAP2 + tx, 50 + ty), |
||||
y: 0, |
||||
x: 0 |
||||
}], |
||||
['l', 68 - VERTEX_GAP2 + tx, 50 + ty, { |
||||
r: getR(0 + tx, ty, 68 - VERTEX_GAP2 + tx, 50 + ty), |
||||
y: 0, |
||||
x: 0, |
||||
f: 1, |
||||
}], |
||||
['l', 68 + VERTEX_GAP2 + tx, 50 + ty, { |
||||
r: getR(68 + VERTEX_GAP2 + tx, 50 + ty, 68 + 68 + tx, ty), |
||||
y: 0, |
||||
x: 0, |
||||
f: 1, |
||||
v: 1 |
||||
}], |
||||
['l', 68 + 68 + tx, ty, { |
||||
y: 0, |
||||
x: 0, |
||||
f: 1 |
||||
}] |
||||
] |
||||
}]; |
||||
} |
||||
|
||||
//ď
|
||||
export function getLatin13(x, y) { |
||||
return [{ |
||||
d: -1, |
||||
v: [ |
||||
['m', x, y, { |
||||
x: 0, |
||||
y: 0 |
||||
}], |
||||
['l', x, 80 + y, { |
||||
x: 0, |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
||||
//Ē
|
||||
export function getLatin14(x, y) { |
||||
return [{ |
||||
d: 1, |
||||
v: [ |
||||
['m', x - 50, y, { |
||||
x: 0, |
||||
y: 0 |
||||
}], |
||||
['l', x + 50, y, { |
||||
x: 0, |
||||
y: 0, |
||||
f: 1 |
||||
}], |
||||
] |
||||
}]; |
||||
} |
@ -1,2 +1,2 @@
@@ -1,2 +1,2 @@
|
||||
const LeonSans = require('./LeonSans').default; |
||||
const LeonSans = require('./leonsans').default; |
||||
module.exports = LeonSans; |