4824578 Строительные блоки могут быть упакованы по горизонтали или вертикально с использованием - и | Символы соответственно для составления более сложных глифов. Эти символы могут быть прикованы, чтобы упаковать более двух символов с равными комнатами.
Пример:
| Результат | Код | Результат | Код |
|---|---|---|---|
27-26-26 | 2468|24578 |
( и ) Символы могут использоваться для групп компонентов вместе, поэтому смешанная горизонтальная и вертикальная упаковка может происходить в правильном порядке.
Пример:
| Результат | Код | Результат | Код |
|---|---|---|---|
(48|37)-(25678|27)-(37|15) | (46-68)|(246-268)|(24-28) |
Другие символы и радикалы могут быть направлены непосредственно на создание нового персонажа. Парсер будет сбросить содержимое эталонного глифа непосредственно в строку, аналогичную функции C/C ++ #include . Это делает особенно легко описать более сложные китайские иероглифы, поскольку большинство из них состоят из радикалов.
Пример:
| Результат | Код | Результат | Код |
|---|---|---|---|
廿|468|由|(八) | ((車|(山))-(殳))|(手) | ||
((口)-(口))|(甲)|十 | (((木)-(缶)-(木))|(冖))|((鬯)-(彡)) |
Базовый анализатор включен в rrpl_parser.js , который способствует этой интерактивной демонстрации. Его можно использовать с JavaScript на стороне браузера, а также node.js:
//require the module: (or in html, <script src="./rrpl_parser.js"></script>)
var parser = require ( './rrpl_parser.js' ) ;
//obtain an abstract syntax tree
var ast = parser . parse ( "(48|37)-(25678|27)-(37|15)" ) ;
//returns line segments (normalized 0.0-1.0) that can be used to render the character
var lines = parser . toLines ( parser . toRects ( ast ) ) ; Данные RRPL можно хранить в файле JSON, что сопоставление символов Unicode ountode в их соответствующем описании, например, например, например, например,
{
"一" : "48" ,
"丁" : "468|26|27" ,
"上" : "246|248" ,
"不" : "(48-45678-48)|(3-26-1)" ,
"丕" : "不|一" ,
"中" : "(46-2468-68)|(24-2468-28)" ,
"串" : "中|中"
} Ссылки в этих файлах обычно сначала расширяются до того, как будет предпринята попытка рендеринга. Это можно сделать двумя способами. Первый использует parser.preprocess(json_object) в rrpl_parser.js , в то время как второй использует compile.js . Больше документации можно найти в комментариях этих файлов.
Файлы JSON могут быть дополнительно сжаты в (и несомненно из) двоичного файла около половины размера оригинала с использованием compress.js , используя половину байта для кодирования каждого символа в алфавите RRPL.

preview.html , содержащую рендеринг всех символов в файле rrpl json: $node render.js preview path/to/input.json
realtime.html , где пользовательские входы могут быть проанализированы и отображаются в интерактивном порядке: (символы, определенные во входном файле, будут доступны для ссылки). $node render.js realtime path/to/input.json
$node export_glyphs.js path/to/input.json path/to/output/folder 0
В отличие от того, что генерирует render.js . Больше настройки, таких как толщина, можно настроить в исходном коде export_glyphs.js ; API командной строки придет позже.
pip install fontforge ) Пример можно найти в tools/forge_font.py . Поскольку RRPL сводит всех китайских иелок до короткой череды чисел, их структуру может быть изучена последовательными моделями, такими как цепочки Маркова, RNN и LSTM без особых трудностей. Я применил RNN (повторяющиеся нейронные сети) к языку на галлюцинацию, несуществующие китайские иероглифы. Ниже приведены некоторые символы, сгенерированные обучением в течение ночи по описанию символов ~ 1000 RRPL, с визуальными эффектами, отображаемыми с использованием модели Pix2PIX. В ближайшее время будет создано отдельная репо для этого проекта.

rrpl.json содержит последнюю, работающую версию. Там около 5000 персонажей, но существует более 50 000 китайских иероглиф! Так что помощь очень ценится. Если вы хотите помочь с этим проектом, добавьте новые символы в файл и отправьте запрос на привлечение. Для получения дополнительной информации свяжитесь со мной, отправив электронное письмо в Lingdonh [AT] Andrew [Dot] CMU [DOT] EDU.
Ниже приводится рендеринг всех 5000+ китайских иероглифов, обозначаемых с использованием RRPL до сих пор. Нажмите на изображение, чтобы увеличить.
