- UID
- 7
- 帖子
- 2888
- 精华
- 10
- 积分
- 2836
|
代码太吓人了:
KleinianLimitSets {
; modified june 2009, original June 2006 Ronald Barnett
;
; Based upon the depth-first tree search algorithm in the book \
; Indra's Pearls by Mumford, Series and Wright. It is considerably faster \
; than most other algorithms in generating the limit set.
; modified Feb 2010 to allow mapping transforms to work.
;
global:
import "common.ulb"
import "reb.ulb"
Circle C = new Circle(0,0)
Circle cir[4]
Mobius gen[4]
MobiusArray word = new MobiusArray(@level)
complex cs[4]
float rad[4]
int tag[]
setlength(tag,@level)
float magn = #magn
float scrsize = #width*#height
float epsilon = @epsilon
; this uses a 640x640 screen with magn = 1 as the reference
if @screen
epsilon = epsilon*409600/scrsize/magn
endif
int w = 0
int h = 0
float Inc = @percentInc*0.01
float wd = Inc*#width
float ht = Inc*#height
int wd2 = round(wd*0.5)
int ht2 = round(ht*0.5)
int ilev = 0
complex ta = @ta
complex tb = @tb
complex taj = @taj
complex tbj = @tbj
if !@expert && @typeb == "Double Cusps"
tb = (2,0)
if @tb2 == "1 100 Cusp"
ta = (1.99901430461837,-3.94468287279129e-005)
elseif @tb2 == "1 99 Cusp"
ta = (1.99899431720688,-4.06536410107979e-005)
elseif @tb2 == "1 98 Cusp"
ta = (1.9989737159102,-4.19101798220381e-005)
elseif @tb2 == "1 97 Cusp"
ta = (1.99895247534081,-4.32190326141746e-005)
elseif @tb2 == "1 96 Cusp"
ta = (1.99893056878569,-4.45829500728911e-005)
elseif @tb2 == "1 95 Cusp"
ta = (1.99890796812253,-4.60048582566762e-005)
elseif @tb2 == "1 94 Cusp"
ta = (1.99888464372953,-4.74878717791897e-005)
elseif @tb2 == "1 93 Cusp"
ta = (1.99886056438849,-4.90353081361803e-005)
elseif @tb2 == "1 92 Cusp"
ta = (1.99883569718054, -5.06507032899056e-005 )
elseif @tb2 == "1 91 Cusp"
ta = (1.99881000737372, -5.23378286366251e-005 )
elseif @tb2 == "1 90 Cusp"
ta = (1.99878345830198, -5.41007094967586e-005 )
elseif @tb2 == "1 89 Cusp"
ta = (1.99875601123446, -5.59436452831306e-005 )
elseif @tb2 == "1 88 Cusp"
ta = (1.99872762523451, -5.78712315206112e-005 )
elseif @tb2 == "1 87 Cusp"
ta = (1.99869825700728, -5.98883839104726e-005 )
elseif @tb2 == "1 86 Cusp"
ta = (1.99866786073491, -6.20003646555514e-005 )
elseif @tb2 == "1 85 Cusp"
ta = (1.99863638789812, -6.42128112880125e-005 )
elseif @tb2 == "1 84 Cusp"
ta = (1.99860378708289, -6.6531768270374e-005 )
…… |
-
-
New.gif
(16.48 KB)
|