魔法陣言語
https://gyazo.com/94bee95c9abc52fa867d5c9bba9fb975
inajobが作っているグラフィックス記述言語
MCE(Magial Circle Engine)
魔法陣といっているが、2次元の図が描けるプログラミング言語
チュートリアル
https://web.inajob.freeddns.org/twlogin/data/5643382%3A%252Fmce2%252Freference.html
あとでかくとなっているのが・・
eval
write
結果出力
魔法陣言語の目的はこのwriteでより低級な描画専用言語(魔法陣言語の描画専用言語)を出力すること
evalAllExtArgs()
その関数の下のブロックを全部評価する
evalExtArg(i)
その関数の下のブロック内のi番目の式を評価する
evalArgsLength()
その関数の下のブロックに含まれる式の個数を返す
配列周りは言語仕様に入れても良かったな・・
類似(図を言語で書くところが似ている)
Context Free Art
https://www.contextfreeart.org/
OpenSCAD
https://openscad.org/
これは3Dだけれども・・
Processing
https://processing.org/
v3
https://inajob.github.io/mce3/?flower(10)%0A+shift(0.4%2C0)%0A++scale(0.1)%0A+++circle()%0A+shift(0.7%2C0)%0A++scale(0.2)%0A+++fs("black")%0A++++poly(6%2C1)%0Acircle(1.8)%0Alw(4)%0A+circle()%0A+circle(1.9)%0Acircle(1.98)%0Acircle(2)%0Ascale(0.5)%0A+font("Abril+Fatface")%0A++ss("white")%0A+++lw(100)%0A+++++text("MCE")%0A++fs("black")%0A+++++text("MCE")%0A
ストレージを持つのをやめてURLに全てを埋め込んだ
v2
https://web.inajob.freeddns.org/mce2/mce2.html
作例がみたいならこちら
5x5に四角がグリッド状に並んでいる図がほしい・・とかいう時にさっとかけて便利inajob.icon
code: pre
scale(1/10)
grid(5,5)
rect()
https://gyazo.com/ba0d30d7f4bf979d1f1d282d4533e075
ほらね!
修作として作ったけど、この言語、何が良いのだろう?inajob.icon
漠然とした「書きやすさ」みたいなのは感じる
これは作った人だからなのか?
かなりアドホックに作っていったので、ちゃんと言語設計を勉強したい人は、別の教材を使った方が良いと思う
場当たり的に作ってもこれくらいは作れるという見本にはなりそう
見た目はpythonっぽいtakker.icon
ちょっと違うか
インデントでブロックを定義出来るのはPythonっぽいといえそうinajob.icon
そしてその処理は魔法陣言語の処理系の外で処理されて、パーサに渡される時には{}を使ってブロックを定義するようになっている
Preludeは{}を使って書かれてる
魔法陣言語のPrelude
作例からピックアップ
arduino-nano
Arduino Nanoのピンアウト図
https://gyazo.com/768491692600b3bfa7ce11ecc7dc5692
ino-2019
2019年の干支画像
ジェネラティブアート風
https://gyazo.com/64f9c796ac6be43b013b0ef21dd9769e
#プログラミングで作図するツール