スーパー楕円をGNU Rの等高線を使って描画する
スーパー楕円という図形をGNU Rを使って書いてみました。
上の図形のことをスーパー楕円と言います。名前がちょっと安っぽい気がしますね(笑)
スーパー楕円というのは、普通の円よりも丸みを感じる(主観)曲線です。通常の円(正円)よりも、四角形に近い形をしています。イメージとしては、円と角丸四角形の中間的な図形です。
円とスーパー楕円の比較をしてみます。
スーパー楕円と円の違い
楕円は長軸と短軸の比率が大きなると、尖って見えます。一方、スーパー楕円はそれほど尖って見えません。
スーパー楕円は、通常の楕円よりも尖って見えないので、見る人に安心感を与えてくれそうです。不思議と柔らかそうな気もしてきます。
スーパー楕円を書いてみる
スーパー楕円を描く方法として、以下の三つを考えました。
- Adobe IllustratorでJSX(スクリプト)で書く
- エクセルを使って、各点を計算して、グラフとして書く
- GNU Rの等高線を使用してグラフとして書く
今回紹介するのは、GNU Rでスーパー楕円を描く方法です。GNU Rを使用する方法は、他の二つよりも遥かに簡単です。
Adobe Illustratorで書くには、数式をパスに変換するスクリプト(JSX)が必要だったため、学習コストを考慮して断念しました。エクセルについては、各点を計算するときに、絶対値を用いた記述が困難だったため、断念しています*1。
GNU Rでスーパー楕円を記述する
GNU R(日本ではR言語と呼ばれがち)とは、統計解析が得意な言語及び開発実行環境のことです。初期状態でさまざまな種類のグラフを簡単に作図できます。
今回は豊富なグラフ機能のうち、等高線グラフを使用してスーパー楕円を書きます。
スーパー楕円の式(陰関数)
次に示す曲線の式はのとき、スーパー楕円と呼ばれます。のとき、円の方程式と等価ですね。
このようなという形式で表した関数を陰関数と言います。円の方程式も双曲線の式も陰関数の一種です*2。
等高線を使って、陰関数のままグラフを描画する
GNU Rを含む多くのソフトでは、陰関数のままではグラフを描画できません。しかし、GNU Rの等高線グラフを使うと、陰関数を陽関数に式変形しなくても、簡単に描画できます。
実行結果
スーパー楕円が表示されます。ソースコード中のaとbの値を書き換えれば、細長いスーパー楕円が描かれます。
出力結果をPDFなどに保存してベクターファイルを取り扱えるソフトウェア(例:Adobe Illustrator, Inkscape)でグラフ枠を消去すれば、スーパー楕円の縦横比を自由に変更できますね。