Copyright (c) 1995-2003, Junzo SATO. All rights reserved.
July 27th 2003
As the reader can see in the reference[1], constuction of the fractal surface is done with simple operations. Cutting the sphere randomly into two hemispheres and adding a random gaussian displacement in radial direction to one of hemispheres give the fractal planet after iterations.
Assuming that the sphere has an unit radius, the point on the surface is described as follows.
In[1]:=
Out[1]=
The size of the vector should be the unit length.
In[2]:=
Out[2]=
By introducing an angle η for x-y plane, the above expression is modified.
In[3]:=
Out[3]=
Out[4]=
Out[5]=
Then, the constraint becomes the following.
In[6]:=
Out[6]=
In[7]:=
Out[7]=
When we choose a point on the sphere, a great circle, i.e., the edge of the hemisphere is uniquely defined by regarding the specified point as elements of the normal vector of the circle's plane.
In[8]:=
Out[8]=
In[9]:=
Out[9]=
The normal vector itself should have unit length.
In[10]:=
Out[10]=
The constraint for the point is same as the previous one.
In[11]:=
Out[11]=
Now we can achieve the great circle's coordinates by solving equations for λ and μ.
In[12]:=
Out[12]=
The values λ and μ are determined by η. Let's define the module which returns a random point on the unit circle.
In[13]:=
This is useful to specify a random normal vector of a great circle.
In[14]:=
Out[14]=
For example, the first solution of μ with specified vector n becomes the following.
In[15]:=
Out[15]=
Because it is possible to represent λ and μ as sin(θ) and cos(θ) respectively, we have four plots of η versus θ curve.
In[16]:=
Out[16]=
Out[17]=
Out[18]=
Out[19]=
In[20]:=
For the special case when the normal vector is along the cartesian ax, this function returns appropriate plots.
In[39]:=
Out[39]=
Out[40]=
Out[41]=
As the result of the above calculations, the greate circle is defined the following function.
The functions of the great circles are obtained.
Let's the counter k to 1.
For the k-th function of the great circle, we can get numbers which are rescaled from radian values to degrees.
The matrix of the η - θ plane in degrees is allocated. The size is 360 times 180.
The package for the normal distribution is loaded.
Gaussian random number is created using NormalDistribution.
For the great circle, one of hemispheres is selected randomly. Then the gaussian random number is added to the value of the selected hemisphere.
Using my 3dmf-for-mathematica application package, the graphics object is converted to the QuickDraw3D metafile.
The QuickDraw3D Viewer for Windows is available from Apple.
Unfortunately, the LiveGraphics3D doesn't work for the graphics output with large number of polygons.
Many years ago, I wrote an application Pangea for the MacOS classic. It works extremely faster than Mathematica because it's written by C++. The following screenshot shows the result of 5000 cutting steps generated about only 10 second.
[1] Roman E. Maeder, "The Mathematica Programmer II", Academic Press, 1996
Converted by Mathematica (July 28, 2003)