init:
z1 = #pixel
z2 = #pixel + @offset
z3 = #pixel + flip(@offset)
IF ((imag(z1)>=.575*real(z1)) && (-.575*real(z1)<=imag(z1)))
z1 = 2*z1-1i
ELSEIF (real(z1)<=0)
z1 = 2*z1+(.8660254, 0.5)
ELSEIF (real(z1)>0)
z1 = 2*z1+(-.8660254, 0.5)
ELSE
z1 = 2*z1
ENDIF
我用画板造此分形时,我在理解这段代码时,卡住了!这段代码的意思是:满足不同的条件时,Z1的算法不同,由红色部分的 Z1,判断当((imag(z1)>=.575*real(z1)) && (-.575*real(z1)<=imag(z1)))成立时,按前面红色部分的z1计算 z1 = 2*z1-1i。当此条件不成立,而按红色部分的z1判断real(z1)<=0成立时,由红色部分的z1按算式z1 = 2*z1+(.8660254, 0.5)算出z1;当这二个条件均不成立,但real(z1)>0成立,则按 z1 = 2*z1+(-.8660254, 0.5)仍由红色的z1代入此式算z1.
这样问题出现了,ELSE下的算式,意思是上面三种情况均不满足,按z1 = 2*z1算z1,但当同时否定上面三种情况时,似又出现三种情况之一,这矛盾,如何解决呢?或者是我理解有误? |