png2cfr

command module
v0.0.0-...-7072188 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2023 License: MIT Imports: 6 Imported by: 0

README

Конвертор из PNG в минималистичный язык рисования графики CFR[]

Общие сведения

CFR[] — минималистичный язык рисования графики, состоит из пяти команд:

  • C — циклически поменять цвет (доступно восемь цветов)
  • F — нарисовать одну точку выбранным цветом и сдвинуть позицию рисования в выбранном направлении
  • R — повернуть направление рисование на 45°
  • [ ] — поворить указанное в скобках один раз (эта конструкция может быть вложенной)

Такая структура больше предназначена для генерации рекурентых штук, но мне было интересно попробовать сконвертировать на этот язык что-нибудь растровое и решить задачу оптимизации, то есть научиться сворачивать инструкции в циклы.

Вот во что превращается один из тестовых примеров:

RR[[FC][CCC]]F[FC][CCC][FCFF[CCC]C]FF[FRR]CF[CCC]C[FCFF[CCC]C]FCFF[CCC]C[[FC][CCC]][F[RRR]][F[FC][CCC]][FCFF[CCC]C][FC][CCC][FRR]CF[CCC]C[FCFF[CCC]C]FCFF[CCC]C[[FC][CCC]][F[RRR]]CF[CCC]C[FC][CCC][F[FC][CCC]]F[FC][CCC]FFF

Посмотреть результат интерпретации этого кода можно онлайн по ссылке: https://susam.net/cfr.html

Запуск

Запустить программу можно компилятором языка Go при помощи следующей команды:

go run png2cfr.go pictures/frog.png

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL