ジュリア集合

user-pic
0

別にこれがトリというわけでもないが、マンデルブロ集合の後は、ジュリア集合を描いてみる。

それで、ともかくとりあえず描いてみたジュリア集合の画像と、そのプログラムを示す。


すなわち、ジュリア集合は、f(z) = z2 + cをもちいた複素力学系で、複素定数cをあらかじめ決めておき、初期値z0をいろいろ変えてみるものであり、すると、どういうcを選ぶかが、審美的な画像になるかどうかの決め手なのであるが、妥当な複素数cをどう決めるか私には難しいので、数学セミナーの荒井迅氏の記事にあった、c = 0.36237 + 0.32iという定数を拝借させて頂いた。この図形は、どこかしらドラゴンというか、八岐大蛇というか、中国の水墨画のようで、なかなか趣がある。

ただこれだと、画像の解像度が低いことで、細部のフラクタル性がわからない。なので、プログラムの下に、ズームした画像も貼り付けてみた。
なお、ズームとは下記のコードで、x = (double) A/180; y = (double) B/180;となっている分母の180を適当に増やし、px = 420 + A; py = 280 + B;となっている420と280を適当に変更して、みたい領域が画面に出てくるようにすることである。

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double x,y,tx,ty,x0,y0;
double a = 0.36237;
double b = 0.32;
int n,A,B;
int px, py;

 for ( A = -200; A < 200; A++ )     {
   for ( B = -230; B < 230; B++ )  {
	 x = (double) A/180; y = (double) B/180;
	 n = 0;
     while ( x*x + y*y < 4.0 )   {
      tx = x*x - y*y + a;
      ty = 2.0*x*y + b;
      x = tx;
      y = ty;
      n++;
      if ( n > 2000 ) break;
    }
    px = 420 + A; py = 280 + B;
    if ( n > 2000 ) Canvas->Pixels[px][py] = clBlack;
    else if ( n == 1 ) Canvas->Pixels[px][py] = clGreen;
    else if ( n == 2 ) Canvas->Pixels[px][py] = clYellow;
    else if ( n == 3 ) Canvas->Pixels[px][py] = clBlue;
	else Canvas->Pixels[px][py] = clWhite;

  }
 }	
  
}
//---------------------------------------------------------------------------


トラックバック(0)

トラックバックURL: http://commutative.world.coocan.jp/mt/mt-tb.cgi/4539

コメントする

このブログ記事について

このページは、あやたろうが2017年5月16日 05:21に書いたブログ記事です。

ひとつ前のブログ記事は「仔羊の巣」です。

次のブログ記事は「或日の大石内蔵助」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。