この記事は、らんぐらんぐAdventCalendar12月23日用に書かれた記事です。
注意:しばらく関数アートについての説明があるため、関係ないかもしれませんがご容赦ください。
関数アートとは
関数アートとは、その名の通り数学のグラフで絵を描くものです。どちらかといえば「グラフアート」と言った方がいいのですが、こちらはすでに商標登録されてしまっているので使えないため、関数アートと言っています。
グラフで絵を描く
数学のグラフで書くため、通常の絵ではできるが関数アート上ではできないことがいくつかあります。主なものとして、グラデーションがあります。
追記:実は執筆時すでにグラデーションを書こうと思えば描けるような関数が実装されたのですが、平面では使えないのと自分が良く使う媒介変数表示では使えないため、今は使えないとしておきます。
しかし、グラデーションは文字には要りません。よって、このデメリットは帳消しになるわけですね。よかった!
きれいな線が描ける
関数アートはほとんどが直線 or 曲線です。いわゆる「筆記体」と呼ばれるもの、「行書体」などと呼ばれるものは再現することが難しいです。(できないことはないが難しい)しかし、交点などの座標を計算で求めることが可能となります。一定の数学知識はいりますが、ほとんどは高校数学までの知識で可能。関数アートをやっていれば必然的に高校数学を(穴埋めですが)できるんですね。
文字を作るということ
関数アートは別に人工言語に限った話ではありません。自然言語だって、作ることが可能です。
自然言語の場合
作る場合はほぼフォント作成となるでしょう。事前に形は決まっているので、ある程度楽なはずです。実際、過去の関数アートの中には自然言語の文字を再現している方もいます。
(関数アートの国際コンテストが毎年開かれているんですね!)
もちろん、メインは関数アートであり文字ではありませんが、大体こういう作品は文字をたくさん使うもの。軽く作ろうと苦心しておられます。その結果、少し不格好なものになってしまうこともあるんですね。
しかし、文字をメインとするなら話は別。自由に作ることが可能なのである!
人工言語の場合
人工言語の場合、さらに自由度は上がります。既存の形にとらわれる必要がないため、自在に好きな形を作れるのです。
もちろん、下書きとなる設計図は必要となります。それを用意した後、どれくらいの大きさ・太さにするかなど、そういったことを自由に決められるのも強みです。パラメータを用意して、リアルタイムで考えることもできます。(ある程度の技術力が必要ですが...)
実際に作る
基本はDesmosというサイトで作っているため、リンクを貼っておきます。
ない場合は画像を貼っておくので、自由に見てみてください。
Novara語(現在ほぼ凍結)
Novara語は、自分が作っている言語です。ただし、最近はめっきり動いていないのです。
logmasnit語(メイン)
自分がメインで作っている言語です。最近始めたばかりなのでまだ勢いに乗っている(...気がします。)
セリフをいれた文字を作っりました。英語の古い本みたいなのを作りたくて作ったのです。
(この字は万穹世界のドリーダ国でも使われているそうな)
アルファベット(試しに作ってみた)
自然言語として、アルファベットのフォントを作ってもみました。まだ足りない部分はあるものの、基礎としての形は完成しています。
大文字・小文字の扱いや英数字など、考えなければならないことも多いですが、きちんとしたフォントが作れるのも関数アートならではです。
メリット・デメリット
もちろん、この方法にもメリット・デメリットがあるので、参考にしていただきたいです。
メリット
- きれいな形で作れる 計算ですべての点の座標が出せるため、きれいにつなげることが可能です。また、正円などが簡単に描けるため、そういった面で重宝することがあるかと思います。
- コピペが楽 すべて数式で書かれているので、どの部分がどの部分に対応しているのかわかりやすいです。関数アートには短さを競うゴルフというものがありますが、文字を作る際はわかりやすさ優先で作ることが多いため、値を変えたコピーだけで作れるものもあったりします。 ## デメリット
- 数学知識がいる 当然のように高校数学の知識が要求されます。中学までの知識でも可能ですが、できれば高校数学を学んでおきたいですね。
- ちょっと難しい 普通に絵をかくのに比べて、「直感的に」は難しいと思います。ただ、慣れれば話は別です。事実、自分も慣れているので、アルファベットフォント(小文字のみ)であれば30分あれば作れました。
おすすめの方法
自分が良く使っている手法を書いておきます。参考にしてください。
複素数を使う
複素数とは、数学Ⅱで学ぶものです。普通の平面座標ではないので難しいと考える人もいると思いますが、Desmosで扱う上ではそう難しくはありません。
平行移動はもちろん、回転もしやすくなるため、ぜひ複素数を使うことをお勧めします。
素材を用意する
パーツごとに分けて、そのパーツを先に用意しておくといいでしょう。それの組み合わせで作る、というようにすれば一気に難易度は下がります。複素数で作っていればなおさらだし、媒介変数を使うのもいいと思います。
サイズを整える
線の太さを気にする必要があります。Desmosで使える線を利用するのもよいが、おすすめは領域です。太さは画面サイズによって変動してしまうので、線を消して、領域だけで描くことをお勧めします。
拡張機能
拡張機能の一つ、DesModderというものがあります。(Google Chromeのみ)この拡張機能では、グラフのスクショが簡単にできます。解像度指定もできるので、ぜひとも使ってみてはいかがでしょうか。
終わりに
興味がある人はぜひ、関数アートをやってみてください。人工言語に関係なくとも、関数アートは知っていたらできることも広がるのだから。
(実際、私は関数アートで架空国家の国旗を作ったりしていますから。)
人気順のコメント(0)