クリフォードアトラクタの図形を回転させる方法
こんにちは、えむしーじじょうのShikiです。
今回はクリフォードアトラクタ(Clifford Attractor)の図形を90°ピッチで回転させる方法の紹介です。クリフォードアトラクタに手を出した人、もしくは今後に手を出しそうな人以外には需要が無いであろう、とてもニッチな内容です。小ネタの備忘録なのです。
クリフォードアトラクタとは
Clifford A. Pickoverさんが発明(発見?)したストレンジアトラクタの1つで次のような式になります。
a,b,c,dのパラメータによって、様々な図形ができます。「Clifford Attractor」でググれば色んな作品を見ることができます。
事の背景
そもそも、何故タイトルの様なことをしたくなったのか。それは下の図形が発端でした。首を傾けて見れば、なんとなく犬に見えます。
a = -1.897, b = 0.725, c = -1.368, d = 1.542
-90°回転(反時計回りが回転方向)させれば犬の図形が出来上がるのですが、画像編集で90°回転させるのは邪道です。何故なら、クリフォードアトラクタはa,b,c,dのパラメータを入れることで誰が計算しても同じように再現できなければいけません。画像編集で90°回転させては同じパラメータで再現できなくなってしまいます。
ダメなのは承知で、回転行列(θ=π/2)
で計算してやります。すると見事に崩れ、下の画像が出来上がりました。犬の面影はありません。
何故、回転行列で回転してくれないのか。答えは簡単で、式が漸化式になっているためです。そもそも漸化式が崩れてしまってクリフォードアトラクタの式では無くなってしまいました。
では、どうしたら出来るのか。
回転させる方法
理屈は割愛するとして、式の雰囲気から何パターンか試したら辿りつきました。ポイントは係数a,b,c,dのみを変換させることでした。
90°回転回転させるには係数を次のように変換させます。a,bとc,dで符号が異なるのが意地悪ですね。
こうすると画像は次のようなります。うまく90°回転できています。
a = -0.725, b = 1.897, c = -1.542, d = -1.368
90°の回転ができてしまえば180°, 270°の回転は簡単です。
90°の回転を2回行うだけです。
から、180°は
となり、同様にして270°は
となります。
やりたい事は反時計回りに270°回転なので、この結果を基にパラメータを入れてやれば、ご覧の通り。
a = -0.725, b = 1.897, c = 1.542, d = 1.368
こうして見事に犬の形をしたクリフォードアトラクタが完成したのでした🐶
めでたし、めでたし。
終わり。
記事が面白かった! 役に立った! 応援したい! という方にご支援頂ければ幸いです。