Processing #1 対数螺旋の可視化
こんにちは、kazumaです。今回は、processingを使った対数螺旋の図示を目標に、整理ノートの役割として書いていきます。
そもそも対数螺旋とは?
対数螺旋(たいすうらせん、英: logarithmic spiral)とは、自然界によく見られる螺旋の一種である。等角螺旋(とうかくらせん、英: equiangular spiral)、ベルヌーイの螺旋ともいい、「螺旋」の部分は螺線、渦巻線(うずまきせん)、匝線(そうせん)などとも書く。ヤコブ・ベルヌーイ(ジャック・ベルヌーイ)は、17世紀のスイスの数学者。
(wikipediaより引用)
今回のコード
float angle;
float da = 5;
float x,y;
float p = 100;
float s = 100;
float a = 5.0;//らせんの巻き方、大きいと早く広がる
float b = 0.12;//らせんの巻き方、大きいほど早く広がる
float d = 8;
void setup (){
size(200,200);
background(255);}
void draw(){
//background(255);
x = a*exp(radians(angle)*b)*cos(radians(angle))+width/2.0;
y = a*exp(radians(angle)*b)*sin(radians(angle))+width/2.0;
line(x,y,p,s);
if(x<0 && y<0){
angle = 0;
p=width/2;
s=width/2;
a -= 0.5;}
else{
angle += da;
p = x;
s = y;}}
出力結果
一様螺旋になったのですが、なんかこれだけだとなぜか悲しいので、aの値をずらして、上に重ねてみる。
ちょっと面白くなってきたので、背景を黒にして、ランダムな色にしてみる。
思ったより、緑寄りになりました。ランダムなはずなのに(ランダムだからと言って、色が様々な色になるとは限らないfromNewton)
というわけで、今回は対数螺旋をprocessingによって可視化してみました。
ここまで読んでいただきありがとうございます。良ければ別の記事も読んでいただけると嬉しいです。