Board logo

标题: UF分形程序与画板制作 [打印本页]

作者: 柳烟    时间: 2011-1-18 23:13     标题: UF分形程序与画板制作

我很少将画板用于教学,我觉得画板真正用在教学上的并不多。我主要用画板来玩数学,我觉得我还没发现一种软件,能将数学结合得如此紧密,并通过画板,让数学的诱人魅力得到充分的发挥。
用画板玩复变分形,个人认为最好向优秀的范例学习。个人认为,著名分形软件UF中自带的大量范例,给我们提供了绝佳的学习机会。里面五花八门的复变分形,色彩缤分,花样繁多,确有一种引人魅力,而用画板实现,又给人带来一种别样的乐趣。
本人涉足复分形以来,承蒙本坛高手的指点,引领,有点进步,,并吸收了分形版块朋友们的经验,尤其是在榕坚老师帮助下,解决了不少用画板实现分形的难关。还有常老师对用画板作分形时,退出循环的卓越见解,与提供的源文件,让画板实现分形迈上了一个新的台阶。边玩UF,边用画板实现里面的复分形,有点小收获。今响应梅老师的号召,开一帖,让大家一同玩UF并用画板实现,把快乐让更多的人分享,独乐乐,不如众乐乐。
玩好粗论分形一帖中的精典M集与J集,或者向老师的帖子《爱上分形》里的精典M集与J集(里面的逃逸时间算法造作M集,即讲了原理,又讲了步骤,又有源文件,等于手把手教,一看就会),就可以玩UF中的分形了,原理与步骤几乎是一样的,依葫芦画瓢即可。
UF中的有些符号与算法,与画板中的计算,不一样,这大家要注意。
所用工具:向老师的工具箱,常老师的复分形坐标计算工具,以及本人的几个UF小工具。
|a+bi|=a^2+b^2,
abs(a+bi)=abs(a)+abs(b)
cabs(a+bi)=sqrt(a^2+b^2),即a+bi的模。
Real(z),复数z的实部。
Imag(z),复数z的虚部。

作者: 柳烟    时间: 2011-1-18 23:15

1# 柳烟
UF范例1:(位于ahm.ufm中)
ChaosbrotJulia {
;Julia set of the "Chaosbrot" fractal.
;This once was on Wikipedia, but it got deleted.
lease petition at Talk:Chaosbrot to get it reinstated! Please!
;And I didn't even invent them!!!
init:
c=@Constant(柳烟注:这是J集,J集最后是对z赋色,所以c应定位于一固定的点。横标是什么呢?代码后面可看到Constant,后面的值就是。)
z=#Pixel
loop:
x=Real(z)
y=Imag(z)
xTemp=x^2 - y^2
y=@J*x*y
x=xTemp
z=x + y*1i + c
bailout:
|z|<=@Bailout(|z|,相当于精典M集讲义中的z’的模,但这里应按UF中的约定行事。)default:
title="Chaosbrot (Julia)"
float param Bailout
  default=10(这是阈值。大家看到我源文件中的baiout,就知这是阈值。)
画板中的M集与J集的逃逸参数:p=0.5*(1-sgn(0.5+sgn(|z|-baiout)))
endparam
complex param J
  caption="J"
  hint="This is the unnamed parameter that primarily determines the fractal."
  default=1.5(这是J的值,但是我看面板,发现那里的J不是一个实数,而是一个复数,而这里只是个特殊情况,所以决定造得更一般化。看代码应结合面板进行,有时代码不太明白的参数,一看面板上的,就了然了。)
endparam
complex param Constant  hint="This is the 'normal' parameter for the Julia Set, where its value \
  corresponds with a point in the M-Set, yada yada."
  default=(0.317,0.647)(柳烟注:这就是c的定位值。)
endparam
switch:
type="ChaosbrotMandel"
Perturbation=#pixel
J=J
}
作者: 柳烟    时间: 2011-1-18 23:18

加色部分对用画板造作复变分形重要。我的经验是,init,loop,及后面的一些值重要,其余部分几乎可不考虑。Init与loop里的算式,大家按代码的顺序算出即可,熟练后,可将几步传成一步。我在制作中,为方便大家理解,我严格按代吗进行。
大家看完代码后,再看我制作的视频,再来看代码,融会贯通后,对UF中的其它M集J集简单代码,就能读能造了。应坚持实践第一。
用画板造复分形,当新造的分形与原来造作过的分形有些部分完全一样,你可调出原来的分形,临时制作工具,这样可节省时间,提高效力。
制作视频如下:
http://u.115.com/file/f6b771bd2#
熟练后,完全可以直接算出Z‘的坐标值,不必硬要照程序一步步来。
作者: 柳烟    时间: 2011-1-19 00:09

UF中该系列的旁边的ChaosbrotMandel 的代码:
ChaosbrotMandel {
;It was sad day when this page was deleted from Wikipedia.
;Tip: In general, The Julia sets look a lot better than the M-Sets.
init:
c=#pixel
z=@Perturbation
loop:
x=Real(z)
y=Imag(z)
xTemp=x^2 - y^2
y=@J*x*y
x=xTemp
z=x + y*1i + c
bailout:
|z|<=@Bailout
switch:
type="ChaosbrotJulia"
Constant=#pixel
J=J
default:
title="Chaosbrot (Mandelbrot)"
center=(-0.5,0)
float param Bailout
  default=20
endparam
complex param J
  caption="J"
  hint="This is the unnamed parameter that primarily determines the fractal."
  default=0.6
endparam
complex param Perturbation
  default=(0,0)
endparam
}
这是个M集,大家可比照前面范例,轻二易举地造出该M集,因为迭代公式完全一样,可完全比照精典M集的逃逸时间算法,将其用画板搞出。
作者: 柳烟    时间: 2011-1-19 00:20

UF范例二:Alternating (位于ahm.ufm中)
Alternating {
; Alternates the iterations between "z^2", "z^2 + c", "z + c", and
; "z^2 + c" again. Plans include changing the period via parameter.
init:
z=@Perturb  c=#pixel
loop:
  IF (@Period == 0)
  z=z*z
  z=z*z + c + c
  z=z*z + c
柳烟注:这里的(@Period == 0)与后面的(@Period == 1)等均为开关项,相当于拉第一个开关,产生一个复分形,拉另一个开关,又产生另一个不同的复分形,此程序后面的Period
     caption="Period"
     enum="z^2, z^2+c, z+c, z^2+c" "z+c, z^2+c, z^2, z^2+c" "z+c, z^2, z^2, z+c, z^2"
其中enum部分没多大意义,其实这三个引号内的部分就是开关,你点开UF面板去找找,就心明如镜了。能不能象UF一样,在画板中将这三个复分形造来由开关控制?能。不过,有时文件过于庞大,过于复杂,我喜欢一个个造。这个分形,造在一个文件中,估计能扫得动,大家可先开动开动脑筋。当你只造第一个开关项的复分形时,后面的IF部分,就不要理了。
  
ELSEIF (@Period == 1)
  z=z + c
  z=z*z + c
  z=z*z
  z=z*z + c
  ELSEIF (@Period == 2)
  z=z+c
  z=z*z
  z=z*z
  z=z+c
  z=z*z
  ENDIF
bailout:
  |z| < @Bailout
default:
  center=(-0.25,0)
  magn=1.5
  title="Alternating"
  float param Bailout
     default=4
     min=1
     hint="Upper limit of absolute value for points in the set."
  endparam
  complex param Perturb
     caption="Perturbation"
     default=(0,0)
     hint="This allows you to change the initial value."
  endparam
  param Period
     caption="Period"
     enum="z^2, z^2+c, z+c, z^2+c" "z+c, z^2+c, z^2, z^2+c" "z+c, z^2, z^2, z+c, z^2"
     default = 2
     hint = "This is the mapping that is repeated. They are all \
     combinations of squaring and constant addition.The first two \
     options look alike, but with different perturbations they \
     produce different results."
  endparam
}
大家按我前面说的,这里的Bbaiout=4
  z=@Perturb中,Z的初值为(0,0)
作者: xiaongxp    时间: 2011-1-19 00:53

成竹于胸,操作精准,柳老师功夫了得!两个视频一定要好好学习,期待后续……
作者: mjj_ljh    时间: 2011-1-19 14:03

辛苦了,谢谢。
作者: changxde    时间: 2011-1-19 15:21

柳老师身手敏捷,钦佩。
希望有更多的朋友爱上分形。
作者: 柳烟    时间: 2011-1-20 12:54

感谢几位老友捧场。
Alternating(@Period == 0).gsp (22.64 KB)
这是制作视频文件。
http://u.115.com/file/f6604e8696#

附件: Alternating(@Period == 0).gsp (2011-1-20 12:54, 22.64 KB) / 下载次数 3874
http://inrm3d.cn/attachment.php?aid=9781&k=6f94f3fa764f668fadf0dd7fc9ffd496&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-1-20 12:57

将三个开关项的不同复分形,造于一个画板文件中。
http://u.115.com/file/f65574f54f#
作者: 柳烟    时间: 2011-1-20 14:54

就Alternating(@Period == 1).gsp ,扫几张图片:
未命名.jpg
未命名(1).jpg
周围的麻点,放大,又可找到其复制品。
中间的小血点放大,又可见到小M集。
再放大一部位:
未命名(2).jpg

图片附件: 未命名.jpg (2011-1-23 20:40, 38.61 KB) / 下载次数 1677
http://inrm3d.cn/attachment.php?aid=9784&k=336af6dfe12cbd8158bcf35a105a0454&t=1732389211&sid=6b6J6a



图片附件: 未命名(1).jpg (2011-1-23 20:40, 14.29 KB) / 下载次数 1661
http://inrm3d.cn/attachment.php?aid=9785&k=bd635ab7284f9644eda0191f6a2bedab&t=1732389211&sid=6b6J6a



图片附件: 未命名(2).jpg (2011-1-23 20:40, 20.04 KB) / 下载次数 1662
http://inrm3d.cn/attachment.php?aid=9786&k=b83520b069595b4daf6607d201bf09d3&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-1-20 16:47

UF范例3:(位于ahm.ufm中):
ScaledBwp14 {
;almost identical to BWP14, but it has been scaled
;so as to view certain values more clearly.
init:
  z = @Start
(这是最后z的定位点,面板上给出了具体定位于何处,你也可改设其它定位点,在UF面板上进行操作即可)  
PixMod = (#pixel / (cabs(sqrt(sqrt(@Exponent2+1))))) ^ @Exponent2
(这是由点#pixel 算出的新点,算式中的cabs函数,在二楼有说明。sqrt是平方根函数,@Exponent2与@Exponent21这两个复数,代码最后给出了具体的值,是个实值,但从面板上看,是个复值,你要按实数做可以,你如果要造作得更具一般化,你可设为复数。)
  c = #pixel
(这是着色前c的定位点,你如果将点c与此点合并,有时造出的复分形不对劲,差别天壤。你可按此点的横纵坐标,再造一点,再将c合并到此点即可。特别是有时见到程序中:z=c=#pixel,你如果最后将点z、c都合并到点#pixel,由于c可能没参与迭代,结果合并后,也许此点也参与迭代,结果弄出的图怪得很。故而一般不直接将两点向此点合并,这大家要注意。就象造精典M集,你将z直接合并到原点,结果造的M集不对劲,你要另造一横纵坐标为0的点,再将其合并到该点,就对了。
loop:
  z = (z ^ @Exponent1) * PixMod + c
bailout:
  |z| <= @Bailout
default:
  title = "Scaled BWP 14"
  complex param Start
    caption = "Start"
  endparam
  complex param Exponent1
    caption = "Exponent 1"
    default = 2
  endparam
  complex param Exponent2
    caption = "Exponent 2"
  endparam
  float param Bailout
    caption = "Bailout Value"
    default = 4.0
(这是阈值,在面板上也有。)
  endparam
}
作者: 柳烟    时间: 2011-1-20 19:16

ScaledBwp14 的画板制作视频:
http://u.115.com/file/f68fae5a8e#
至此,该系列的其余几个分形,大家可独自完成,没有问题了。
作者: 榕坚    时间: 2011-1-21 19:28

11# 柳烟


柳老师的讲解通俗易懂,这可是一个好贴子。这个Alternating分形我好象也做过,可是只在(@Period == 2)也就是UF的开关最后一个里扫到过小M集。在Alternating(@Period == 1)里没有找到,能否把第一张图的扫描中心位置及放大倍数告知。
作者: 柳烟    时间: 2011-1-21 22:58

14# 榕坚
是我错了,我查了我扫描的文件,正是你说的(@Period == 2)中,扫出的M集。
作者: 柳烟    时间: 2011-1-21 23:03

来一个稍微复杂点的带开关项的M集.在akl.ufm中。
MoebiusMandel {
init:
  z = @start
(柳烟注:既是M集,Z的初值定在何处呢?代码后面或面板上有,你结合面板,就知starting ponte(Re)与starting ponte(Im)即为z的定位的横纵标。)  
float xLim = abs(real(@limit))
  float yLim = abs(imag(@limit))
(在面板上能找到,接下来的二行,即是。这用来后面条件语句(IF后面的句子)中,当条件成立时,改变迭代算法而用。)
float reZ = 0
  float imZ = 0
(这两句好象是叫电脑腾出两个位子,存贮两变量reZ与imZ,对用画板制作复分形,可不考虑,事实上,这两句在画板中没啥作用。)
loop:
  z = z^@power + #pixel
(@power的值面板上有,后面也告诉了,这大家对前面几个程序应该有所熟悉,在代码后面何方,不难找到。#pixel就是C的值,将来的M集对其着色扫图的那个点。)  
reZ = real(z)
  imZ = imag(z)

  reZNew = reZ
  imZNew = imZ

  if (reZ < -xLim)
    reZNew = reZNew + 2*xLim
if (@mode == 1)
(这里的@mode是何意思?找代码后面,有
param mode
    caption = "Moebius Mode"
    enum    = "Normal" "Double" "Inverse"
    default = 0
再看面板上,找到Normal后,你点下拉菜单,可看到"Double" "Inverse",你就会恍然大悟,原来这是一个开关项。当你只某一个开关项的分形时,其余开关项有关的语句,你就别去考虑了。换句话说,一个开关项,造一个分形。理论上,所有的开关项,程序很容易实现的,画板能作出,但太繁顼,我试过,当开关项太多,一是造起来杀伤脑细胞,另由于计算过于复杂,太过秀气的几何画板吃不消,有可能扫不动。所以我喜欢一个分形一个分形去造。注意,@mode == 1成立时,对应第二个开关项"Double",当mode == 2成立时,对应第三个开关项"Inverse",当不考虑这二个开关项,也就是说mode == 1,2,将其后面的语句删去,则得第一个开关项的分形Normal)
      imZNew = imZNew - yLim
    elseif (@mode == 2)
      imZNew = -imZNew
    endif
  elseif (reZ > xLim)
    reZNew = reZNew - 2*xLim
    if (@mode == 1)
      imZNew = imZNew + yLim
    elseif (@mode == 2)
      imZNew = -imZNew
    endif
  endif

  if (imZ < -yLim)
    imZNew = imZNew + 2*yLim
    if (@mode == 1)
      reZNew = reZNew - xLim
    elseif (@mode == 2)
      reZNew = -reZNew
    endif
  elseif (imZ > yLim)
    imZNew = imZNew - 2*yLim
    if (@mode == 1)
      reZNew = reZNew + xLim
    elseif (@mode == 2)
      reZNew = reZNew
    endif
  endif

  z = reZNew + 1i*imZNew

bailout:
  |z| < @bailout
default:
  title = "Moebius' Mandel"
  center = (-0.5, 0)
  maxiter = 100
  method = multipass
  periodicity = 0

  param start
    caption = "Starting point"
    default = (0,0)
hint = "Perturbation. Use (0,0) for the standard Mandelbrot set."
(这告诉你z的定位的横纵坐标,与面板上的一致,这定位点,你可改换其它的定位坐标试试,说不定会看到比面板上还美的分形。)  
endparam

  param limit
    caption = "Moebius limits"
default = (2,2)
(这横纵坐标,前面已解说,主要用来作条件判断所用的。)  
endparam

  param mode
    caption = "Moebius Mode"
    enum    = "Normal" "Double" "Inverse"
    default = 0
  endparam

  param power
    caption = "Power"
    default = (2,0)
    hint = "This defines the power of the Mandelbrot set. Use (2,0) \
            for the standard Mandelbrot set."
(这是前面loop:
  z = z^@power + #pixel中,z的指数。)

  endparam

  param bailout
    caption = "Bailout value"
    default = 4.0(这是阈值)   
hint = "Defines how soon an orbit bails out, i.e. doesn't belong \
            to the inner set anymore."
  endparam

switch:
  type = "MoebiusJulia"
  seed = #pixel
  power = power
  bailout = bailout
  limit = limit
  mode = mode

}
解释了这通,就可以造作第一个开关项的分形了。为造好这个分形,我已作好了几个画板用于逻辑判断的算式的工具,发在此(下楼文件中),大家直接运用,提高造分形的效率。
作者: 柳烟    时间: 2011-1-21 23:04

"Normal" 的复分形。
http://u.115.com/file/f6b3bf5ff4#
扫一图。
未命名(3).jpg
MoebiusMandel(Normal).gsp (32.76 KB)

图片附件: 未命名(3).jpg (2011-1-23 20:42, 27.37 KB) / 下载次数 1684
http://inrm3d.cn/attachment.php?aid=9809&k=7c89bac89bc26428e053827efea13e53&t=1732389211&sid=6b6J6a



附件: MoebiusMandel(Normal).gsp (2011-1-21 23:34, 32.76 KB) / 下载次数 2756
http://inrm3d.cn/attachment.php?aid=9810&k=6b8692df04ec93aee28e9d3630b5748a&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-1-23 00:47

将就上楼的文件,将x[strt]设为0.000001,y[strt]=0,并将作色法改为平滑作色法,或者你自编一个含et的RGB作色,则逃逸区域得到填补,与UF中的图一致了。如图:
未命名(4).jpg

图片附件: 未命名(4).jpg (2011-1-23 20:42, 27.64 KB) / 下载次数 1688
http://inrm3d.cn/attachment.php?aid=9821&k=999b9272e3c077543e1341c62c286ea2&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-1-23 00:59

后两个开关项,我作来与UF差别太大,还没找到原因。这问题暂时打住,研究一段时间再说,若板友有知道如何作,可告知,非常感激。UF中,还有许多问题没解决。
作者: 柳烟    时间: 2011-1-23 11:20

Newton {
;
; Standard Newton fractal.
;
(这是常规N集,代码简单,通过看这种代码,便于熟悉UF的代码格式及意义,对解读复杂代码,并用画板造复杂分形打下基础。万丈高楼平地起。如果果复函数为f(z),则牛迭的迭代式为z-f(z)/f’(z)如果f(z)=z^3,导函数f’(x)=3z^2,则牛迭的迭代式为:z-(z^3-1)/3z^2,其余仿此)init:
  z = pixel
loop:
  zold = z
  z = ((p1 - 1) * z^p1 + @r) / (p1 * z ^ (p1 - 1))
(p1的值后面有告诉,为可变参数,(3,0),@r的值后面有告诉。)
bailout:
  |z - zold| >= 0.00001
(注意,这步与M集的p值不一样,这里的p=0.5*(1-sgn(0.5+sgn(|z - zold|-0.00001))),此式右边的0.00001即为阈值,也就是面板上的bailout)
default:
  title = "Newton"
  helpfile = "Uf3.chm"
  helptopic = "Html\formulas\standard\newton.html"
  maxiter = 100
  param p1
    caption = "Exponent"
    default = (3,0)
    hint = "Specifies the exponent of the equation that is solved by \
            Newton's method. Use real numbers (set the imaginary component \
            to zero) to obtain classic Newton fractals."
  endparam
  param r
    caption = "Root"
default = (1,0)
(这是@r值。)   
hint = "Specifies the root of the equation that is solved. Use larger \
            numbers for slower convergence."
  endparam
}
作者: 柳烟    时间: 2011-1-23 15:31

Newton的视频:
http://u.115.com/file/f6570c229a#
作者: 柳烟    时间: 2011-1-23 16:14

N_sin_M {
; newton's method applied to f(z) = sin(z) - c
; Q(z) = z - f(z)/f'(z) = z - ((sin(z)-c)/cos(z))

global:
   
init:
  z = 0
  complex delta_z = 0
  complex c = #pixel
  bool continue = true
  
loop:
  delta_z = ( sin(z) - c ) / cos(z)
  
  if |delta_z| < @delta
    continue = false
    if @zmode=="step"
        z = delta_z
    endif ; zmode
  else
    z = z - delta_z
  endif ; < @delta
  
bailout:
; -- this isn't the bailout but the continuing condition
;    false = bail; true = continue
  continue
  
default:
  title = "Newton-M, sin(z)-c" ; [v1.0]
  magn = 0.25
  periodicity = 0
  
  heading
    caption = "Bailout"
  endheading
  float param delta
    caption="Bailout delta"
    hint="Square of max step. Use small values."
    default=1e-8
    min=0
  endparam
  param zmode
    caption = "final z"
    enum = "z" "step"
    default = 1
  endparam
  
switch:
  type = "N_sin_J"
  cv = #pixel
  delta = delta
  zmode = zmode
  
}
大家自已仿照前面的解读UF程序,自已解读。我看了面板,面板上的开关项有两个,一个是z,一个是step我点了这两个开关项看了看,发现完全一样,至少我没看出区别,所以就按牛M集造。而上楼的则是牛J集,牛J集是对z着色,而牛M集则是对c着色。造的过程大体一样。 if |delta_z| < @delta
    continue = false
    if @zmode=="step"
        z = delta_z
    endif ; zmode
  else
这段代码我没考虑,直接计算出 z = z - delta_z然后进行迭代。
作者: 柳烟    时间: 2011-1-23 16:17

N_sin_M(UF)的视频:
http://u.115.com/file/f63b39515f#
N_sin_M.gsp (22.97 KB)

附件: N_sin_M.gsp (2011-1-23 16:18, 22.97 KB) / 下载次数 2505
http://inrm3d.cn/attachment.php?aid=9827&k=2d2d87ccd83de56f3ca7afa11c7564ee&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-1-23 16:26

扫一图:
未命名(5).jpg

图片附件: 未命名(5).jpg (2011-1-23 20:43, 30.9 KB) / 下载次数 1515
http://inrm3d.cn/attachment.php?aid=9828&k=11f014616c3ce315c887135afd407d72&t=1732389211&sid=6b6J6a


作者: 榕坚    时间: 2011-1-29 10:01

19# 柳烟


将三个开关项整在一起了:

附件: 未命名1.gsp (2011-1-29 10:01, 22.93 KB) / 下载次数 1885
http://inrm3d.cn/attachment.php?aid=9916&k=3ca7e01666639ad60b43c61039872d1e&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-2 00:22

25# 榕坚
刚从外地归来,问好榕兄,新春快乐。下载文件,学习研究。
作者: 柳烟    时间: 2011-2-3 19:50

25# 榕坚
榕坚兄的原文件中,计算的每一步几乎都按UF程序进行,且算式清晰明了,大家结合UF程序并对照原文件中的每一步,很容易作出。故而视频文件不再制作,大家尝试自已完成。
作者: 柳烟    时间: 2011-2-3 20:06

bobm000.ufm中。
Bob28 {
; Bob Margolis
init:      
  z=c=fn1(1/(pixel*pixel))
fn1代表不同的复函数,你从UF面板上的函数开关处,选取不同的函数,就得到不同的复分形。在其它的UF程序中, 除fn1外,还有fn2、fn3,均是面板上的函数开关。从面板上看,有近二十多个函数
loop:
  z=z*z+c
bailout:  
  |z| <= 4
按精典M集造,迭代得出et、em后,着色前,将z、与点c定位在: fn1(1/(pixel*pixel))即可。
}
作者: 柳烟    时间: 2011-2-4 00:51

整了11个带函数开关的分形。上楼文件的制作视频如下:
http://u.115.com/file/f6d05c7226#
Bob28.gsp (37.36 KB)

附件: Bob28.gsp (2011-2-4 00:52, 37.36 KB) / 下载次数 2429
http://inrm3d.cn/attachment.php?aid=9984&k=eced98166cb23e51de024b0586dd8f9e&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-4 03:00

Cayley-mand {
; Ron Barnett, February 1999
; based upon the formula z = z^3 - az - c + 1
; convergence methods added 10/2/2004
init:
  complex fz = 0
  complex fzp = 0
  complex fzp2 = 0  
  #z = 0
(这是z的定位初值,注意,着色前,不能直接将z合并到原点,另造(0,0)的点,
再将z合并到该点)
  complex oldz = 0
  complex a = #pixel
(这句意思是将#pixel的值赋给a,让a参与后面的复函数式的运算。但在画板中,
往往是让a先参与运算,迭代后,再将其合并到#pixel最后对#pixel着色。但在此例中,
不涉及a的迭代问题,合并不合并无关系,所以就将a当成#pixel即可。)
  float iterate = 0
loop:
  iterate = iterate + 1
  oldz = #z
  fz = #z^3 - a*z - a + 1
  fzp = 3*#z^2 - a
  fzp2 = 6*#z
  if @converge == 0                          ; Newton
    #z = #z - fz/fzp
  elseif @converge == 1                      ; Householder
    #z = #z - fz/fzp*(1 + fz*fzp2/(2*fzp^2))   
  elseif @converge == 2                      ; Halley
    #z = #z - 2*fz*fzp/(2*fzp^2 - fz*fzp2)  
  elseif @converge == 3                      ; Schroder
    #z = #z - fz*fzp/(fzp^2 - fz*fzp2)  
  elseif @converge == 4                      ; Ho custom
    #z = #z - fz/fzp*(1 + fz*fzp2/(@custom*fzp^2))      
  elseif @converge == 5                      ; Ha custom
    #z = #z - 2*fz*fzp/(@custom*fzp^2 - fz*fzp2)  
  elseif @converge == 6                      ; H_S custom
    #z = #z - @custom*fz*fzp/(@custom*fzp^2 - fz*fzp2)      
  elseif @converge == 7                      ; Mixed1
    if  iterate % 2 == 0
(查UF中的帮助,知道:a % b = a - trunc(a/b) * b)
      #z = #z - fz/fzp*(1 + fz*fzp2/(2*fzp^2))  
    else
      #z = #z - fz/fzp
    endif  
  elseif @converge == 8                      ; Mixed2
    if  iterate % 2 == 0
      #z = #z - 2*fz*fzp/(2*fzp^2 - fz*fzp2)  
    else
      #z = #z - fz/fzp
    endif
  elseif @converge == 9                      ; Mixed3
    if  iterate % 2 == 0
      #z = #z - fz*fzp/(fzp^2 - fz*fzp2)  
    else
      #z = #z - fz/fzp
    endif
  elseif @converge == 10                      ; Mixed4
    if  iterate % 2 == 0
      #z = #z - @custom*fz*fzp/(@custom*fzp^2 - fz*fzp2)  
    else
      #z = #z - fz/fzp
(Newton、Householder、Halley、Schroder、Ho custom……这些都是复分开关,在每个开关里,
都可找到相应的复分形迭代式。可仿照前面的做法弄在一个文件中,但是怕秀气的几何画板吃不消,
扫不动。所以先弄少许的几个,然后改变计算式,再弄出其余的几个,再将就原文件进行修改,
弄出其余的几个,将负载减少。各别开关项里有@custom,你在UF面板上调出相应的开关项时,
立刻在该开关项的下面,就会出现H_S constant,里面的值就是@custom.这是可变参数。)
    endif
  endif
bailout:
  |#z - oldz| >= @bailout
default:
  title = "Cayley Mandel"
  maxiter = 1000
  center = (0.3593516980975, 0)
  magn = 360
  method = multipass
  periodicity = 0
  heading
    caption = "Cayley Mandelbrot"
  endheading
$ifdef VER40
  heading
    text = "This is a 'convergent' fractal that uses multiple convergence \
            methods and has Mandelbrot-like regions for several convergence methods."
  endheading
$else
  heading
    caption = "This is a 'convergent' fractal"
  endheading
  heading
    caption = "that uses multiple convergence"
  endheading
  heading
    caption = "methods and has Mandelbrot-like regions"
  endheading
  heading
    caption = "for several convergence methods."
  endheading
$endif
  param version
    caption = "Formula Version"
    default = 1.0
    hint = "You should never see this parameter; it's used internally to track \
        which version of the formula was used to create your image, so that \
        if a bug is found which breaks backwards-compatibility, the formula \
        can adapt transparently."
    visible = false
  endparam
  param bailout
    caption = "Bailout value"
    default = 0.000001
  endparam
  heading
    caption = "Convergence Methods"
  endheading  
  param converge
    caption = "Convergence Method"
    default = 0
    enum = "Newton" "Householder" "Halley" "Schroder" "Ho Custom" \
           "Ha Custom" "H_S Custom" "Mixed1" "Mixed2" "Mixed3" "Mixed4"
  endparam  
  float param custom
    caption = "H_S Constant"
    default = 1.5
(custom即为UF面板上的H_S Constant",为1.5,也可为其它的值,为可变参数)
    visible = @converge==4 || @converge==5  || @converge==6 || @converge==10
  endparam  
switch:
  type = "Cayley-jul"
  bailout = @bailout
  converge = @converge
  p1 = #pixel
  custom = @custom
}
作者: 柳烟    时间: 2011-2-4 13:30

以0:Newton
4、Hocustom
7、Mixed1为例
于是程序可精简为这几段:
loop:
  iterate = iterate + 1
  oldz = #z
  fz = #z^3 - a*z - a + 1
  fzp = 3*#z^2 - a
  fzp2 = 6*#z
  if @converge == 0                          ; Newton
    #z = #z - fz/fzp
   
elseif @converge == 4                      ; Ho custom
    #z = #z - fz/fzp*(1 + fz*fzp2/(@custom*fzp^2))      
   
  elseif @converge == 7                      ; Mixed1
    if  iterate % 2 == 0
      #z = #z - fz/fzp*(1 + fz*fzp2/(2*fzp^2))  
    else
      #z = #z - fz/fzp
Cayley-mand(更新).gsp (39.53 KB)
庆幸才弄了三个开关项的分形,慢如蜗牛。如果全部弄完,真的扫死机子了。其余的几个分形,你只要将计算式新增添加进已有的式子,即可得新的分形,没必要重新迭代并着色,省事多了。

附件: Cayley-mand(更新).gsp (2011-2-5 12:07, 39.53 KB) / 下载次数 3919
http://inrm3d.cn/attachment.php?aid=9990&k=6a92fad9eb4c5d2ba922b493646163c9&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-4 13:46

这是上楼的视频。
原来发的视频文件有点小小问题,现已更新。
http://u.115.com/file/f61729ea0d#
其余的几个开关项,作为练习,自已仿此完成。
作者: 柳烟    时间: 2011-2-4 14:54

扫图:
未命名.jpg
未命名(1).jpg

图片附件: 未命名.jpg (2011-2-4 16:08, 13.57 KB) / 下载次数 2578
http://inrm3d.cn/attachment.php?aid=9993&k=8f4a484066aedb394505b4a5a2bbb2bf&t=1732389211&sid=6b6J6a



图片附件: 未命名(1).jpg (2011-2-4 16:08, 12.84 KB) / 下载次数 2652
http://inrm3d.cn/attachment.php?aid=9994&k=a09a95428fbc457fe721e373189d2587&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-5 01:23

未命名.jpg
未命名.jpg

图片附件: 未命名.jpg (2011-2-5 09:04, 20.45 KB) / 下载次数 2629
http://inrm3d.cn/attachment.php?aid=10000&k=e6347073f216f280fe9d8d793ae7113a&t=1732389211&sid=6b6J6a



图片附件: 未命名.jpg (2011-2-5 13:29, 66.47 KB) / 下载次数 2928
http://inrm3d.cn/attachment.php?aid=10001&k=6356d105d13e7ee7f0c3a2c29902cbab&t=1732389211&sid=6b6J6a


作者: inRm    时间: 2011-2-5 09:03

这个精彩。
作者: 柳烟    时间: 2011-2-5 19:26

范例位于reb.ufm系列中:
OldPhoenix {
; Ron Barnett, 1990
; Old formula from Stevens Turbo Pascal book
; Modified and tweaked March 2000
init:
  #z = flip(#pixel)
这是z的初值,画板采取的是先迭代,后定位亦即合并方法。最后将z定位于何处?flip函数是将点#pixel的实部与虚部相交换,即横坐坐标交换后的点。如果不交换行不行呢,行,则与原图比校,只是旋转了一个角度,旋转了多少,你可按中学里的点变换算处即知。最后是对#pixel点进行着色。)  
complex x1 = 0
complex y = 0
(这是x1与y点的初值,均为原点。)
loop:
  x1 = #z*#z + real(@p1) + imag(@p1)*y
  y = #z
  #z = x1
(这段代码意思是,将初值的象算出,即为x1 = #z*#z + real(@p1) + imag(@p1)*y
,然后将其赋值给z的象点 #z = x1,而将Z的原象赋给y(注意这里的x1就相当于画板里的z',而y的象点,在迭代过程中,相当于上一个z值。)我是这样理解的,不知对不对,大家可发表意见。)

bailout:
  (@test == 0 && |#z| <= @bailout) ||                                         \
  (@test == 1 && sqr(real(#z)) <= @bailout) ||                                \
  (@test == 2 && sqr(imag(#z)) <= @bailout) ||                                \
  (@test == 3 && (sqr(real(#z)) <= @bailout && sqr(imag(#z)) < @bailout)) ||  \
  (@test == 4 && (sqr(real(#z)) <= @bailout || sqr(imag(#z)) < @bailout)) ||  \
  (@test == 5 && (sqr(abs(real(#z)) + abs(imag(#z))) <= @bailout)) ||         \
  (@test == 6 && (sqr(real(#z) + imag(#z)) <= @bailout))
这里的开关项,面板上可看出,是test ,主要功能是改变画板里的逃逸参数p的算法。我以test==0,与test==1为例,其余你可举一而反三。
default:
  title = "OldPhoenix"
  center = (0.0, 0.0)
  maxiter = 256
  periodicity = 0
  param version
    caption = "Formula Version"
    default = 1.0
    hint = "You should never see this parameter; it's used internally to track \
        which version of the formula was used to create your image, so that \
        if a bug is found which breaks backwards-compatibility, the formula \
        can adapt transparently."
    visible = false
  endparam
  param test
    caption = "Bailout Test"
    default = 0
    enum = "mod" "real" "imag" "or" "and" "manh" "manr"
(这里的"mod" "real" "imag" "or" "and" "manh" "manr"即为代表前面的不同的test ,面板上可发现。)  
endparam
  param bailout
    caption = "Bailout value"
    default = 100.0
(阈值为100,这大家对前面的讲解熟了后,一看便知。)   
min = 1
  endparam
  param p1
    caption = "Parameter 1"
    default = (0.56667, -0.5)
(P1的值,面板上也有。)  
endparam
switch:
  type = "OldMandelPhoenix"
  bailout = @bailout
   
}
上面对代码粗略讲了讲,初学者可能一头雾水,不过,你接着看下楼即将发表的视频后,可加深对代码的了解。我去制作视频去了,干了这么久,制作视频很是一件麻烦的事。另外,在科学的大道上,没有平坦的大道可走,只有不畏劳苦沿着陡峭山路登攀的人,才能达到希望的顶点——-马克思。顺便写上这句名言,与各位板友共勉。
作者: 柳烟    时间: 2011-2-5 20:16

OldPhoenix.gsp (27.36 KB)
上面是制作视频文件中,搞出的画板原文件。这是制作的视频:
http://u.115.com/file/f6ed74bad7#

附件: OldPhoenix.gsp (2011-2-5 20:16, 27.36 KB) / 下载次数 3459
http://inrm3d.cn/attachment.php?aid=10010&k=3dceed40d2c78338ed173515c45f87cb&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-5 20:39

将就上面文件,扫几张图片:
未命名.jpg

图片附件: 未命名.jpg (2011-2-5 21:52, 34.1 KB) / 下载次数 2814
http://inrm3d.cn/attachment.php?aid=10011&k=6ff95dd9f272d578c63e87286c23b8a8&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-5 21:20

未命名(1).jpg
未命名.jpg

图片附件: 未命名(1).jpg (2011-2-5 21:53, 39.29 KB) / 下载次数 2797
http://inrm3d.cn/attachment.php?aid=10013&k=be377edc1f91d54546e0ad258a54a441&t=1732389211&sid=6b6J6a



图片附件: 未命名.jpg (2011-2-6 09:03, 41.39 KB) / 下载次数 2739
http://inrm3d.cn/attachment.php?aid=10014&k=b44ae30fff019b35ccd125b835a9ceb2&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-6 00:29

将此分形的6个改变逃逃参数计算法的test全部造在一个画板文件中,就象操作UF一样方便,是可行的。作为习作,大家可试试。
test6:
未命名(1).jpg
试试向老师的工具箱中的夸张作色法,再弄一张。
未命名(2).jpg

test4
未命名(3).jpg

图片附件: 未命名(1).jpg (2011-2-6 09:05, 41.17 KB) / 下载次数 2831
http://inrm3d.cn/attachment.php?aid=10015&k=da9115d107107e959b1380e38f8f7e0e&t=1732389211&sid=6b6J6a



图片附件: 未命名(2).jpg (2011-2-6 09:05, 49.89 KB) / 下载次数 2771
http://inrm3d.cn/attachment.php?aid=10016&k=a45342f1cf5d4729bb2ffb92b59e04a2&t=1732389211&sid=6b6J6a



图片附件: 未命名(3).jpg (2011-2-6 09:05, 40.41 KB) / 下载次数 2771
http://inrm3d.cn/attachment.php?aid=10017&k=166bf0e66cd3ba07e30b31fcb0da815f&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-6 20:48

sam.ufm中的范例。
sierpinskimod {
; Written by Luke Plant
; Modified by Frederik Slijkerman
; Modified by Samuel Monnier
; (Twist functions added)
init:
  complex z = #pixel
loop:
  IF (imag(z)>0.5)
    z = @f1(2*real(z) + flip(2*imag(z)-1))
(满足条件imag(z)>0.5时,执行此语句z = @f1(2*real(z) + flip(2*imag(z)-1))
,按此算出的点进行迭代。)
  
ELSEIF (real(z)>0.5)
    z = @f2(2*real(z)-1 + flip(2*imag(z)))
(如果imag(z)>0.5不成立,但是real(z)>0.5成立,则执行此语句进行迭代)
ELSE
    z = @f3(2*real(z) + flip(2*imag(z)))
(如果条件imag(z)>0.5与条件real(z)>0.5都不成立时,则执行z = @f3(2*real(z) + flip(2*imag(z))) ,并按此进行迭代。上面的f1,f2,f3均为不同的复函数,面板上点选不同的复函数,则产生不同的复分形。)  
ENDIF

bailout:
  |z| < @bailout

default:
  title = "Twisted Sierpinksi Triangle"
  center = (0.4, 0.4)
  magn = 1.1538
  maxiter = 149
  method = multipass
  periodicity = 0
  param bailout
    caption = "Bailout value"
    default = 127
    min = 1
  endparam
  func f1
    caption = "Function 1"
    default = ident()
  endfunc
  func f2
    caption = "Function 2"
    default = ident()
  endfunc
  func f3
    caption = "Function 3"
    default = ident()
  endfunc
}
UF面板上的图,是当f1=f2=f3=ident(z)=z的情形。我下面的视频文件中,除造此外,再造一个f1=f2=f3=abs(z)=|x|+|y|i,为此,我弄一个开关,以产生这二种情形。
作者: xiaongxp    时间: 2011-2-6 21:05

34# 柳烟
这最后一图结构漂亮,用HSV方式着色效果一定不错。
作者: 柳烟    时间: 2011-2-6 21:16

42# xiaongxp
向老师工具箱中的HSV着色工具中的D是什么。另梅老师好象提供过一个关于HSV的网站,外国的,向老师知道不,我把网址搞丢了。
作者: 柳烟    时间: 2011-2-6 21:18

视频文件如下:
http://u.115.com/file/f6466edb4c#
造视频时的原文件,附上:
sierpinskimod.gsp (23.87 KB)

附件: sierpinskimod.gsp (2011-2-6 21:18, 23.87 KB) / 下载次数 2999
http://inrm3d.cn/attachment.php?aid=10027&k=f843b5c5e21e84a39d6e13fafc189d7a&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-6 21:21

扫图两幅:
未命名.jpg
学习灰度作色,扫之:
未命名(1).jpg

图片附件: 未命名.jpg (2011-2-6 23:12, 22.13 KB) / 下载次数 2066
http://inrm3d.cn/attachment.php?aid=10028&k=fa3f7a0a58d476e3371eb23239d1e795&t=1732389211&sid=6b6J6a



图片附件: 未命名(1).jpg (2011-2-6 23:12, 25.8 KB) / 下载次数 2002
http://inrm3d.cn/attachment.php?aid=10029&k=3beb532b4a94ba47aa0c2a2437db8a33&t=1732389211&sid=6b6J6a


作者: xiaongxp    时间: 2011-2-6 23:23

43# 柳烟
这个工具还很不成熟,对其价值我都不太自信了。因为我对亮度函数和饱和度函数还没有真正理解,不知如何与et\em关联,用它试验的几个分形色彩的控制性差,还有待进一步研究。D关联迭代象终点eM。你要的网址是http://de.wikipedia.org/wiki/Ben ... g_complex_functions
作者: 柳烟    时间: 2011-2-7 09:02

46# xiaongxp
非常感谢。
作者: 柳烟    时间: 2011-2-7 09:05

位于alt.ufm系列中。这程序短,易解读,结合前面的介绍,没问题了。
Mandlebot_Alternating_Inv {
init:
  z = @Start
  int n = @Offset
loop:
  if n % @Times == 0
    z = (z^@Power) + (1 / pixel)
  endif
  n = n + 1
  z = (z^@Power) + pixel
bailout:
  |z| < @BailOut
default:
  title = "Alternating(Mandelbrot*n, Mandlebrot_Inv)"
  center = (-0.5, 0)
  maxiter = 250
  periodicity = 0
  method = onepass
  param @Power
    default = (2, 0)
  endparam
  float param BailOut
    default = 4
  endparam
  param @Start
    caption = "Starting Point"
    default = (0,0)
  endparam
  param @Times
    caption = "Times"
    min = 1
    default = 1
  endparam
  param @Offset
    caption = "Offset"
    min = 0
    default = 0
  endparam
}
如有不明白的地方,可提出,大家探讨,一同提高。
作者: 柳烟    时间: 2011-2-7 09:13

视频文件及原文件附上。
http://u.115.com/file/f6e53e8e73#
Mandlebot_Alternating_Inv.gsp (25.03 KB)

附件: Mandlebot_Alternating_Inv.gsp (2011-2-7 09:13, 25.03 KB) / 下载次数 2660
http://inrm3d.cn/attachment.php?aid=10032&k=16f74a308293341abc757c5f122b9437&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-8 17:53

位于alt.ufm系列中。
Shard_Mandlebrot {
init:
  z = sin((pixel * @A1) + @A2) / sin((pixel * @B1) + @B2)
(先算好,作为Z最后的定位点。注意不要算好此步后,接着算loop后的z,这样用画板无法迭代。)
loop:
  z = (z^@Power) + pixel
(按此步进行迭代,然后将z定位于init后算出的z就成了。最后是对 pixel着色。)
bailout:
  |z| < @BailOut
default:
  title = "Shard(Mandelbrot)"
  center = (-.5, 0)
  maxiter = 250
  periodicity = 0
  method = onepass
  param @Power
    default = (2, 0)
  endparam
  float param BailOut
    default = 4
  endparam
  param @A1
    default = (0, 1)
  endparam
  param @B1
    default = (-6, -4)
  endparam
  param @A2
    default = (0, 2)
  endparam
  param @B2
    default = (0, 0)
  endparam
  param @start
    caption = "Starting Point"
    default = (0,0)
  endparam
}
用画板玩UF中的复分形,关键是多操练,熟能生巧,当你弄多了后,一看程序,猜都猜得到叫你干什么。如有不对劲,再解读程序,就能成功。
作者: 柳烟    时间: 2011-2-8 18:54

http://u.115.com/file/f6534c1be9#
Shard_Mandlebrot.gsp (32.59 KB)

附件: Shard_Mandlebrot.gsp (2011-2-8 18:54, 32.59 KB) / 下载次数 2541
http://inrm3d.cn/attachment.php?aid=10059&k=ed90d9559b823dabed8c7e5eb106d27a&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-8 21:59

扫图:
未命名.jpg

图片附件: 未命名.jpg (2011-2-9 16:27, 33.62 KB) / 下载次数 1141
http://inrm3d.cn/attachment.php?aid=10060&k=b9563c02171e8d32461baa73a302aac6&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-8 22:52

同一类别中的UF范例:
Four_Mandlebot {
init:
  z = @start
loop:
  z = (z^@Power_1) + (pixel + @Ofset_1)
  z = (z^@Power_2) + (pixel + @Ofset_2)
  z = (z^@Power_3) + (pixel + @Ofset_3)
  z = (z^@Power_4) + (pixel + @Ofset_4)
bailout:
  |z| < @BailOut
default:
  title = "Alternating(Mandelbrot x4)"
  center = (-.5, 0)
  maxiter = 250
  periodicity = 0
  method = onepass
  rating = notrecommended
  param @Power_1
    default = (2, 0)
  endparam
  param @Power_2
    default = (2, 0)
  endparam
  param @Power_3
    default = (2, 0)
  endparam
  param @Power_4
    default = (2, 0)
  endparam
  param @Ofset_1
    caption = "Offset 1"
    default = (0, 0)
  endparam
  param @Ofset_2
    caption = "Offset 2"
    default = (0, 0)
  endparam
  param @Ofset_3
    caption = "Offset 3"
    default = (0, 0)
  endparam
  param @Ofset_4
    caption = "Offset 4"
    default = (0, 0)
  endparam
  float param BailOut
    default = 4
  endparam
  param @start
    caption = "Starting Point"
    default = (0,0)
  endparam
$ifdef VER40
  heading
    caption="_About"
    text="Only every forth iteration is displayed"
  endheading
$endif
switch:
  type = "Four_Mandelbrot_Julia"
  Ofset_1 = pixel
  Ofset_2 = pixel
  Ofset_3 = pixel
  Ofset_4 = pixel
  Power_1 = @Power_1
  Power_2 = @Power_2
  Power_3 = @Power_3
  Power_4 = @Power_4
  BailOut = @Bailout
}
这个程序,大家按前面讲的,进行解读即可。这个M集放大,有意思。
作者: 柳烟    时间: 2011-2-8 22:55

http://u.115.com/file/f676651f4d#
自已去下载我U盘中的视频文件。
这是按视频文件中的操作作出的GSP原文件。
Four_Mandelbrot_Julia.gsp (38.92 KB)
此分形实在是美,我试着放大了几个局部,图缤纷。

附件: Four_Mandelbrot_Julia.gsp (2011-2-8 22:55, 38.92 KB) / 下载次数 2536
http://inrm3d.cn/attachment.php?aid=10061&k=242b3120c3a911ab66ad653df1647cc3&t=1732389211&sid=6b6J6a
作者: 榕坚    时间: 2011-2-9 16:12

54# 柳烟


这个扫描起来速度可不是一般的不能接受,特别是迭代次数过1000的。
作者: 柳烟    时间: 2011-2-9 19:28

55# 榕坚
说得对,这也是用画板玩分形的不足之一,影响人的心情,看能不能在以后的版本里,能用它来畅快玩分形。
作者: xiaongxp    时间: 2011-2-9 19:29

沐尘的UF作品《迎春》——真正的有主题思想的分形艺术创作
迎春.jpg

图片附件: 迎春.jpg (2011-2-9 19:29, 146.87 KB) / 下载次数 1266
http://inrm3d.cn/attachment.php?aid=10064&k=1abf302479e2d04343a43fc4bd4a266f&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-9 19:30

57# xiaongxp
不错,欣赏并学习。不知这是UF中的那一个作品。
作者: xiaongxp    时间: 2011-2-9 19:35

58# 柳烟
请点击http://cgpad.com/work/show/3835
作者: 柳烟    时间: 2011-2-10 19:45

carr2003的制作:
Carr2003 {
; Updated for UF2 by Erik Reckase, March 2000
          ; Modified Sylvie Gallet frm. [101324,3444], 1996
init:
  z=c=pixel, z1=imag(p1-cos(pixel))*z-p2
  int iter=0, int limit=round(real(p1)), float bailout=16
loop:
  IF (iter==limit)
    z = z1, c = p3
  ENDIF
  z=z*z+c
  iter=iter+1
bailout:
  |z| <= bailout
default:
  title = "Carr 2003"
  periodicity = 0
  maxiter = 500
  magn = 1.3
  center = (-.4,0)
  method = multipass
  param p1
    caption = "Iter Lim/Julia Scale"
    default = (50,1)
    hint = "The real part of this parameter acts as an \
            iteration limit, where the formula's calculation \
            changes.  The imaginary part of this parameter \
            scales the Julia structure."
  endparam
  param p2
    caption = "Julia Center"
    default = (-0.3,0)
  endparam
  param p3
    caption = "Julia Params"
    default = (-0.65,-0.4)
  endparam
}
程序很易解读,结合下楼的视频,相互参照,易造出此分形。这一分形,经历过无数失败与多人研究,才得以成功。UF分形的画板制作,我与此版的朋友,费了尽一年的心血研究UF分形,几乎业余时间都坐在电脑前,按UF程序造复分形,其中的兄味,如人饮水,冷热自知。
作者: 柳烟    时间: 2011-2-10 19:52

Carr2003的制作视频下载地址:
http://u.115.com/file/f62e2e4fd1#
Carr 2003视频原文件.gsp (28.67 KB)
未命名.jpg

附件: Carr 2003视频原文件.gsp (2011-2-10 19:52, 28.67 KB) / 下载次数 2015
http://inrm3d.cn/attachment.php?aid=10077&k=dd9453693e4a68219823d8b7a817dd6b&t=1732389211&sid=6b6J6a

图片附件: 未命名.jpg (2011-2-11 10:56, 44.51 KB) / 下载次数 1086
http://inrm3d.cn/attachment.php?aid=10078&k=3022ec2c329a6bddb7bf6d0f8833409f&t=1732389211&sid=6b6J6a


作者: changxde    时间: 2011-2-11 09:16

沐尘的UF作品《迎春》——真正的有主题思想的分形艺术创作
10064
xiaongxp 发表于 2011-2-9 19:29
有没有UF程序,让我们学习学习。
作者: 柳烟    时间: 2011-2-11 15:24

改变算法,扫图:
未命名(1).jpg

图片附件: 未命名(1).jpg (2011-2-11 22:28, 29.04 KB) / 下载次数 978
http://inrm3d.cn/attachment.php?aid=10079&k=6e5d3ecdaa50835b6ca346ee718c24cd&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-11 17:26

blb.ufm中的分形
UF-Chico {

;
; Mutation of 'M-SetInNewton'.
; Fractint and UF versions by Bradley Beacham
; Original formula by Jon Horner [100112,1700]
; For 'M-SetInNewton', use defaults
;
; See blb.txt for comments.
; 18 April 2003
;
init:
  if @ThisMode == "Mandelbrot"
    z = (0,0)
    c = @CFunc(#pixel)
  else ;Julia
    z = #pixel
    c = @CFunc(@seed)
  endif

  complex c1 =  c - 1
  complex k = @ConInit
  complex k1 = k - 1
  complex LastZ = (0,0)
  complex nm = (0,0)
  complex dn = (0,0)

loop:
  LastZ = z
  nm = k*c - k1*z*c1
  dn = k*(k*z*z + c1)
  z = @LoopFunc(nm/dn) + k1*z/k + @ConLoop

bailout:
  0.01 <= |(z-LastZ)|

default:
  title = "UF-Chico"
  param ThisMode ;Current Mode
    default = 0
    enum = "Mandelbrot" "Julia"
    visible = False
  endparam
  param NextMode ;Mode to switch to
    default = 1
    enum = "Mandelbrot" "Julia"
    visible = False
  endparam  
  heading
    caption = "M-Set Mode  (F7 to Switch)"
    visible = (@ThisMode == "Mandelbrot")
  endheading
  heading
    caption = "J-Set Mode  (F7 to Switch)"
    visible = (@ThisMode == "Julia")
  endheading  
  complex param seed
    caption = "Julia seed"
    default = (0,0)
    visible = (@ThisMode == "Julia")
  endparam
  param ConInit
    caption = "Init. Constant"
    default = (3,0)
  endparam
  param ConLoop
    caption = "Loop Constant"
    default = (0,0)
  endparam
  func CFunc
    caption = "C Function"
    default = ident()
  endfunc
  func LoopFunc
    caption = "Loop Function"
    default = ident()
  endfunc

switch:
  type = "UF-Chico"
  ThisMode = NextMode
  NextMode = ThisMode
  seed = #pixel
  ConInit = ConInit
  ConLoop = ConLoop
  CFunc = CFunc
  LoopFunc = LoopFunc
}
除非非注解才懂,不再注解,视频中已看出解读程序。
作者: 柳烟    时间: 2011-2-11 17:29

上楼程序的画板制作视频:
http://u.115.com/file/f6e2892a25#
UF-Chico(视频原文件).gsp (32.53 KB)

附件: UF-Chico(视频原文件).gsp (2011-2-11 17:29, 32.53 KB) / 下载次数 1749
http://inrm3d.cn/attachment.php?aid=10081&k=7fa720217468c680586d99c28ab0e903&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-11 17:30

只要将上面的画板文件,稍微动一下手脚,即可得到其余开关项的文件,快速便捷。
下面扫一幅其余开关项的图片:
未命名.jpg

图片附件: 未命名.jpg (2011-2-11 22:28, 28.38 KB) / 下载次数 994
http://inrm3d.cn/attachment.php?aid=10082&k=b7dfd945fe4002a4f937ae79fef06be8&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-12 08:43

Carr1405 {
; Updated for UF2 by Erik Reckase, Feb 2000
           ; Modified T.J.E. Reed formula
           ; Julia
init:
  c=z=pixel
loop:
  z=z*z+c   
  c=(1+flip(imag(sqrt(flip(c)))))*real(sqrt(conj(c)))/6+z   
bailout:
  |z| <= 4
default:
  title = "Carr 1405"
  periodicity = 0
  maxiter = 500
  magn = 1.3
  center = (-.5,0)
  method = multipass
}
制作视频如下:
http://u.115.com/file/f6f1c51a3#
作者: 柳烟    时间: 2011-2-12 08:48

Carr1405.gsp (25.24 KB)
Carr1405.jpg

附件: Carr1405.gsp (2011-2-12 08:48, 25.24 KB) / 下载次数 1902
http://inrm3d.cn/attachment.php?aid=10085&k=5e5c1f09b3fc9b66a42a5aa7274d663b&t=1732389211&sid=6b6J6a

图片附件: Carr1405.jpg (2011-2-12 14:06, 29.6 KB) / 下载次数 981
http://inrm3d.cn/attachment.php?aid=10086&k=cc1276e70684ff20d5bfe5477ae9180e&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-12 08:52

Carr1400系列,可仿Carr1405作之。
Carr1404:
Carr1404.jpg
Carr1406:
Carr1406.jpg

图片附件: Carr1404.jpg (2011-2-12 14:11, 26.68 KB) / 下载次数 940
http://inrm3d.cn/attachment.php?aid=10087&k=3f2e9ab7607dcd435b6e314b52050391&t=1732389211&sid=6b6J6a



图片附件: Carr1406.jpg (2011-2-12 14:07, 31.49 KB) / 下载次数 951
http://inrm3d.cn/attachment.php?aid=10088&k=f293cf10d070ec364eb70c4109686815&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-12 11:53

Carr1465 {
; Updated for UF2 by Erik Reckase, Feb 2000
           ; Julia
init:
  z=pixel
loop:
  z=z*z+(-0.7456,0.2)
bailout:
  |cos(z)| <= 4 || |conj(z)| <= 4
[柳烟注解:用画板制作时,阈值取为4。||是逻辑符号,相当于“或”,可先由|cos(z)| <= 4,计算出p1=(1-sgn(|cos(z)| -baiout)),再由|conj(z)| <= 4计算出p2=(1-sgn(|conj(z)|  -baiout)),逃逃参数p=sgn(p1+p2).如果复数z=x+yi,则conj(z)=x-yi]
default:
  title = "Carr 1465"
  periodicity = 0
  maxiter = 500
  magn = 1.3
  center = (0,0)
  method = multipass
}
视频制作过程,自已到咱的网盘去下载:
http://u.115.com/file/f63aa95102#
作者: 柳烟    时间: 2011-2-12 12:08

公布制作视频时的原文件,并扫图一张:
[attach]10090[/attach]

附件: Carr1465.gsp (2011-2-12 12:08, 23.12 KB) / 下载次数 2524
http://inrm3d.cn/attachment.php?aid=10089&k=944b1b7400e8b9bae2288e965e3bf4f3&t=1732389211&sid=6b6J6a

图片附件: Carr1465.jpg (2011-2-12 14:05, 23.69 KB) / 下载次数 1544
http://inrm3d.cn/attachment.php?aid=10091&k=5074579a8816e99c58784e5384faaa0a&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-12 13:59

Carr1605 {
; Updated for UF2 by Erik Reckase, Jan 2000
           ; Julia
init:
  z=(1-pixel)/asinh(pixel+0.5)
  c=(pixel)/(1/asin(1-pixel))
loop:
  z = z^2 + c
  c=((1+flip(imag(sqrt(sin(c-0.1/pixel)))))*real(sqrt(tan(c)))/9+z)
bailout:
  |real(z)| <= 4
default:
  title = "Carr 1605"
  periodicity = 0
  maxiter = 500
  magn = 1.2
  center = (.8,0)
}
该分形的画板制作视频如下:
http://u.115.com/file/f6af597af0#
作者: 柳烟    时间: 2011-2-12 14:00

Carr1605.gsp (36.09 KB)
扫一图:
未命名.jpg

附件: Carr1605.gsp (2011-2-12 14:00, 36.09 KB) / 下载次数 2925
http://inrm3d.cn/attachment.php?aid=10092&k=2d0653a07cdbe57ab691593b5f77f8a9&t=1732389211&sid=6b6J6a

图片附件: 未命名.jpg (2011-2-12 14:04, 32.1 KB) / 下载次数 1609
http://inrm3d.cn/attachment.php?aid=10093&k=e2af67f0eb99eb1f2e5284ce7df3b63f&t=1732389211&sid=6b6J6a


作者: inRm    时间: 2011-2-12 14:03

这几幅实在是靓丽多彩
作者: 柳烟    时间: 2011-2-12 23:20

Carr1997(XAXIS) {
; Updated for UF2 by Erik Reckase, March 2000
                  ; Modified Sylvie Gallet frm. [101324,3444],1996
init:
  z=c=pixel, c1=1.5*z, c2=2.25*z, c3=3.375*z, c4=5.0625*z
  l1=round(real(p1)), l2=round(imag(p1))
  l3=round(real(p2)), l4=round(imag(p2))
  float bailout=16, int iter=0
loop:
  IF (iter==l1)
    z = 0, c = c1
  ELSEIF (iter==l2)
    z = 0, c = c2
  ELSEIF (iter==l3)
    z = 0, c = c3
  ELSEIF (iter==l4)
    z = 0, c = c4
  ENDIF
  z=z*z+c
  iter=iter+1
bailout:
  |real(z)| <= bailout
default:
  title = "Carr 1997"
  periodicity = 0
  maxiter = 500
  magn = 1
  center = (0,0)
  method = multipass
  param p1
    caption = "Iter Limits 1,2"
    default = (100,150)
    hint = "0< Re(P1) < Im(P1) < Re(P2) < Im(P2) <maxiter \
            for best results"
  endparam
  param p2
    caption = "Iter Limits 3,4"
    default = (200,250)
    hint = "0< Re(P1) < Im(P1) < Re(P2) < Im(P2) <maxiter \
            for best results"
  endparam
}
制作过程视频在这里:
http://u.115.com/file/f6336e267#
作者: 柳烟    时间: 2011-2-12 23:36

Carr1997(XAXIS).gsp (34.49 KB)
重调色彩,扫几幅图:
Carr1997.jpg
Carr1997(1).jpg

附件: Carr1997(XAXIS).gsp (2011-2-12 23:36, 34.49 KB) / 下载次数 3013
http://inrm3d.cn/attachment.php?aid=10104&k=47b4f41d0757578c0f50aecb91f146eb&t=1732389211&sid=6b6J6a

图片附件: Carr1997.jpg (2011-2-13 12:52, 32.98 KB) / 下载次数 1642
http://inrm3d.cn/attachment.php?aid=10105&k=f26e26393c080ffd52165370acaa0907&t=1732389211&sid=6b6J6a



图片附件: Carr1997(1).jpg (2011-2-13 12:52, 28.05 KB) / 下载次数 1672
http://inrm3d.cn/attachment.php?aid=10107&k=150066461c0f8d1b333f6d2d94012696&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-13 12:41

改变等势圈形状,再扫图:

图片附件: 未命名.jpg (2011-2-13 12:41, 46.88 KB) / 下载次数 1623
http://inrm3d.cn/attachment.php?aid=10108&k=c164911a729308c216d0a21cac3e0cf5&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-13 14:03

Carr1880 {
; Updated for UF2 by Erik Reckase, March 2000
init:
  op = 1/pixel, z=1/(pixel-real(op)+flip(imag(op)*.924))
  c=1/(pixel-sin(op)-exp(2*op))
loop:
  z=z*z+c+(-.6,.05)
bailout:
  |z| <= 4
default:
  title = "Carr 1880"
  periodicity = 0
  maxiter = 500
  magn = .3
  center = (-1,0)
}
制作过程的视频地址:
http://u.115.com/file/f629abfa21#
Carr1880.gsp (26.12 KB)

附件: Carr1880.gsp (2011-2-13 14:03, 26.12 KB) / 下载次数 2894
http://inrm3d.cn/attachment.php?aid=10110&k=5ecebb7e0be4cf8627b0c957f0032518&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-13 14:07

以上分形,均选自UF著名系列中的一些典型的具有代表性的作品,一通百通,你可以再选其余的,独自操作,熟能生巧后,你就成大师级的人物了。
Carr1880这分形,初看不怎样,但放大后,扫出的图缤纷色彩,你先在UF中放大看看,确实美。我扫Carr1880一图:
Carr1880.jpg

图片附件: Carr1880.jpg (2011-2-13 21:17, 50.67 KB) / 下载次数 1806
http://inrm3d.cn/attachment.php?aid=10111&k=383bdd5d9c9d951856c45fe055487ec6&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-13 21:04

利用76楼已作好的Carr1997(XAXIS) 快速造作Carr1994(XAXIS)分形:
Carr1994(XAXIS) {
; Updated for UF2 by Erik Reckase, March 2000
                  ; Modified Sylvie Gallet frm. [101324,3444], 1996
init:
  z=c=1/pixel, c1=1.5*z, c2=2.25*z, c3=3.375*z
  l1=round(real(p1)), l2=round(imag(p1)), l3=round(real(p2))
  float bailout=16, int iter=0
(红色式子在原Carr1997(XAXIS)中是z=c=pixel)loop:
  IF (iter==l1)
    z = 0, c = c1
  ELSEIF (iter==l2)
    z = 0, c = c2
  ELSEIF (iter==l3)
    z = 0, c = c3
  ENDIF
  z=z*z+c
  iter=iter+1
bailout:
  |z| <= bailout
(此式,在原Carr 1997中,是|real(z)|),此步可产生不同的等势曲线。两者除加色部分不同外,其余代码没什么区别,所以利用已造好的文件,只要改变这二步算式,其余原封不动,即可得到Carr1994分形。太省事了!!)

default:
  title = "Carr 1994"
  periodicity = 0
  maxiter = 500
  magn = .2
  center = (3,0)
  method = multipass
  param p1
    caption = "Iter Limits 1,2"
    default = (100,150)
    hint = "0< Re(P1) < Im(P1) < Re(P2) < maxiter \
            for best results"
  endparam
  param p2
    caption = "Iter Limit 3"
    default = (200,0)
    hint = "0 < Re(P1) < Im(P1) < Re(P2) < maxiter \
            for best results ( Im(P2) not used )"
  endparam
}
http://u.115.com/file/f681a7d044#
利用Carr1997(XAXIS)造Carr1994(XAXIS).gsp (57.03 KB)

附件: 利用Carr1997(XAXIS)造Carr1994(XAXIS).gsp (2011-2-13 22:24, 57.03 KB) / 下载次数 3013
http://inrm3d.cn/attachment.php?aid=10126&k=82d324d3766545db30af243a6c86468d&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-14 14:43

上楼文件扫出的图片:
未命名.jpg

图片附件: 未命名.jpg (2011-2-14 15:26, 23.59 KB) / 下载次数 1262
http://inrm3d.cn/attachment.php?aid=10127&k=f7993a4c6a2f22adef1538d4c493607d&t=1732389211&sid=6b6J6a


作者: 榕坚    时间: 2011-2-14 16:59

81# 柳烟


赞一个,最近扫出的图形别具一番风味。最近迷于量产u盘很久没扫图形了。
作者: 柳烟    时间: 2011-2-14 21:41

81# 柳烟


赞一个,最近扫出的图形别具一番风味。最近迷于量产u盘很久没扫图形了。
榕坚 发表于 2011-2-14 16:59
量产u盘,还第一次听说,这是如何玩的?
作者: 柳烟    时间: 2011-2-14 21:44

Carr2000这个分形,大家看看与前面的那个视频类似,仿照造之即可。该分形不再制作视频,制作视频颇麻烦的,大家有何问题,可发在这,大家探讨。我扫一张图片:
未命名.jpg

图片附件: 未命名.jpg (2011-2-15 12:46, 45.23 KB) / 下载次数 1248
http://inrm3d.cn/attachment.php?aid=10138&k=d6d2e72433f24a33e71cd9cab53e355e&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-14 22:15

大家对照Carr2000与Carr2006的代码,看看那两步不一样,就修改这两步,可将就已经迭代好并调整好的色彩,立马扫出,真省事。下面是由上楼的文件,修改后,得到。放大后很有意思,大家去放放看。
未命名(1).jpg
我看了一下,Carr2007及2008都可象这样由2000炮制而来,试试。

图片附件: 未命名(1).jpg (2011-2-15 12:47, 25.55 KB) / 下载次数 1349
http://inrm3d.cn/attachment.php?aid=10139&k=34ecba29d9349bab54539b1a9deb3224&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-15 18:33

Carr2000真是只会下金蛋的母鸡!
修改Carr2000分形,得到Carr2020,扫一图:
未命名.jpg
修改Carr2000分形,得到Carr2019,放大一局部:
未命名(1).jpg
Carr2000生出的Carr2019.gsp (61.36 KB)

图片附件: 未命名.jpg (2011-2-16 08:43, 23.16 KB) / 下载次数 1331
http://inrm3d.cn/attachment.php?aid=10147&k=402fae5dab333628eb85c31832d638d3&t=1732389211&sid=6b6J6a



图片附件: 未命名(1).jpg (2011-2-16 08:43, 30.4 KB) / 下载次数 1368
http://inrm3d.cn/attachment.php?aid=10148&k=650988f73cbf9a549935ae7ef79f7754&t=1732389211&sid=6b6J6a



附件: Carr2000生出的Carr2019.gsp (2011-2-15 20:24, 61.36 KB) / 下载次数 2263
http://inrm3d.cn/attachment.php?aid=10149&k=af37125ad4dd9637540fb3979ebeb89c&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-15 23:51

Carr2056 {
; Updated for UF2 by Erik Reckase, March 2000
          ; Modified Sylvie Gallet frm.
init:
  z=conj(pixel)^4-tan(.0002/pixel)-sin(.0002/pixel)
  c=(-.7456,-.03)+.009/pixel
  float compt=0, float limit=real(p1*cos(pixel/5))
  float bailout=4
loop:
  IF (compt>=limit)
    c = (-.745680900000982,-.131850030300002)
  ENDIF
  z=z*z + c
  compt=compt+1
bailout:
  |z|<=bailout
default:
  title = "Carr 2056"
  periodicity = 0
  maxiter = 500
  magn = 1.3
  center = (0,0)
  method = multipass
  param p1
    caption = "Iter Limit"
    default = (100,0)
    hint = "This iteration limit is scaled by the cosine of \
            the current pixel divided by 5.  The real part of \
            this scaled iteration limit signals a change in the \
            value of c."
  endparam
}
http://u.115.com/file/f6c0dbd92e#
Carr2056.gsp (33.04 KB)

附件: Carr2056.gsp (2011-2-15 23:52, 33.04 KB) / 下载次数 2240
http://inrm3d.cn/attachment.php?aid=10154&k=335b5d9bf0f3b8320f2029a49b47acf7&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-16 16:02

扫一图:
未命名.jpg

图片附件: 未命名.jpg (2011-2-17 20:16, 73.47 KB) / 下载次数 1542
http://inrm3d.cn/attachment.php?aid=10155&k=f1c26ff402ae91f4df4ab05a2ea1d836&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-16 20:22

将Carr2056代码中的z、c值修改为z=c=sinh((-.7456,.2)*pixel)*pixel^2-conj(.1/pixel) \
      -flip(.1/pixel),立马得到UF中的Carr2053。我将扫出的图片的两粒白点中的一粒放大后,扫一图:
未命名(1).jpg

图片附件: 未命名(1).jpg (2011-2-17 20:17, 26.04 KB) / 下载次数 1358
http://inrm3d.cn/attachment.php?aid=10169&k=9669115eaffb60a9aa74d2b2a5bfa089&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-16 21:35

将Carr2056代码中的z、c值修改为 z=c=tanh(pixel)+((0.3,0.6)+pixel)*pixel/.2可得Carr2052分形。扫一图片,太美了!此图片由该分形下面的小白点,放大后,得到的。开设这一视频讲座的初衷,原本吸引板友们对UF的兴趣,结果让我也收获不少。
未命名(2).jpg
未命名(3).jpg

图片附件: 未命名(2).jpg (2011-2-17 20:19, 22.13 KB) / 下载次数 1385
http://inrm3d.cn/attachment.php?aid=10172&k=74b7a6f567a45d81bcc78976123bd6ad&t=1732389211&sid=6b6J6a



图片附件: 未命名(3).jpg (2011-2-17 20:19, 16.31 KB) / 下载次数 1363
http://inrm3d.cn/attachment.php?aid=10177&k=7ae016f0f00b2ea38df0f7ce67a31d58&t=1732389211&sid=6b6J6a


作者: mjj_ljh    时间: 2011-2-17 16:27

“……开设这一视频讲座的初衷,原本吸引板友们对UF的兴趣,结果让我也收获不少。”

结果往往是这样,系统的思考某件事,往往首先提高的是自己。喜欢88#和90#的色彩。
作者: 柳烟    时间: 2011-2-17 20:08

Carr2130 {
; Updated for UF2 by Erik Reckase, March 2000
          ; Modified Sylvie Gallet frm. [101324,3444],1996
init:
  d=.3/pixel
  z=c=1/(tan(pixel)*pixel) \
      /(pixel-sqr(flip(1/pixel)-sqr(conj(1/pixel))))
[柳烟注:这个分形,大家解读代码应该问题不大了,这句中的\是连结符,是紧接着前一行后面写。注意与除号/的区别。z=c=1/(tan(pixel)*pixel) \
      /(pixel-sqr(flip(1/pixel)-sqr(conj(1/pixel))))
意思就是z=c=1/(tan(pixel)*pixel) /(pixel-sqr(flip(1/pixel)-sqr(conj(1/pixel))))等价于
]
  z1=1.5*z+d, z2=2.25*z+d, z3=3.375*z+d, z4=11.0625*z+d
  l1=round(real(p1)), l2=round(imag(p1))
  l3=round(real(p2)), l4=round(imag(p2))
  float bailout=16, int iter=0
loop:
  IF (iter==l1)
    z=c=z1
  ELSEIF (iter==l2)
    z=c=z2
  ELSEIF (iter==l3)
    z=c=z3
  ELSEIF (iter==l4)
    z=c=z4
  ENDIF
  z=z*z+c
  iter=iter+1
bailout:
  |real(z)| <= bailout
default:
  title = "Carr 2130"
  periodicity = 0
  maxiter = 500
  magn = .3
  center = (0,0)
  method = multipass
  param p1
    caption = "Iter Limits 1,2"
    default = (100,150)
    hint = "0< Re(P1) < Im(P1) < Re(P2) < Im(P2) <maxiter \
            for best results"
  endparam
  param p2
    caption = "Iter Limits 3,4"
    default = (200,250)
    hint = "0< Re(P1) < Im(P1) < Re(P2) < Im(P2) <maxiter \
            for best results"
  endparam
}
作者: 柳烟    时间: 2011-2-17 20:12

Carr2130分形的制作视频如下:
http://u.115.com/file/f6b88a7b24#
我在制作复分形时,只要有重复的步骤,现制工具现用,加快制造复分形的速度,或者与前面文件有相同的,则调出以前文件,进行移置,提高制作图的效率。
附上原文件:
Carr2130.gsp (43.09 KB)

附件: Carr2130.gsp (2011-2-17 20:12, 43.09 KB) / 下载次数 1873
http://inrm3d.cn/attachment.php?aid=10191&k=ffede3a142240dc51861a7af8a45bd15&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-17 21:38

扫上楼文件一图:
未命名.jpg

图片附件: 未命名.jpg (2011-2-19 12:24, 20.59 KB) / 下载次数 1025
http://inrm3d.cn/attachment.php?aid=10194&k=567b6f77cf3c75a187e3625e77878cf7&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-17 22:21

将93楼文件中的d改为0.5,其余不变,立马扫出Carr2129.
未命名(1).jpg
该系列的绝大多数分形,都可由93楼文件修改算式而得出。按此法,扫出的Carr2128图片一张:
未命名(2).jpg

图片附件: 未命名(1).jpg (2011-2-19 12:25, 23.68 KB) / 下载次数 1050
http://inrm3d.cn/attachment.php?aid=10195&k=74e43f0b3ea2d54827bd59e42aaa2cf5&t=1732389211&sid=6b6J6a



图片附件: 未命名(2).jpg (2011-2-19 12:25, 43.76 KB) / 下载次数 1035
http://inrm3d.cn/attachment.php?aid=10196&k=64edb0043dd4f7369f4a5004d59f8a2c&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-18 21:13

由Carr2130修改得出Carr21o1的视频:
http://u.115.com/file/f66d649ee0#
未命名(3).jpg
制作Carr2101分形视频原文件.gsp (75.37 KB)

图片附件: 未命名(3).jpg (2011-2-19 12:25, 25.23 KB) / 下载次数 1037
http://inrm3d.cn/attachment.php?aid=10216&k=f32934f3d892d267db6b7acb212bd403&t=1732389211&sid=6b6J6a



附件: 制作Carr2101分形视频原文件.gsp (2011-2-19 00:45, 75.37 KB) / 下载次数 1896
http://inrm3d.cn/attachment.php?aid=10217&k=2fd1b429660c61011af9fa468cefc6e0&t=1732389211&sid=6b6J6a
作者: 柳烟    时间: 2011-2-19 01:08

再扫一局部
未命名(4).jpg

图片附件: 未命名(4).jpg (2011-2-19 12:26, 16.88 KB) / 下载次数 1025
http://inrm3d.cn/attachment.php?aid=10218&k=e73a672308c3f2e89fcff3a0ade201bf&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-19 10:17

Carr2107:
由Carr2130修改而得,扫图:
未命名(5).jpg

图片附件: 未命名(5).jpg (2011-2-19 12:27, 26.29 KB) / 下载次数 1003
http://inrm3d.cn/attachment.php?aid=10219&k=2a6fb62b4879fe2ce71b7fe6902a5496&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-19 18:02

Carr2120:
未命名.jpg

图片附件: 未命名.jpg (2011-2-19 21:59, 31.7 KB) / 下载次数 1041
http://inrm3d.cn/attachment.php?aid=10229&k=1ebb2d8ffb2728e23cd7f194727e231a&t=1732389211&sid=6b6J6a


作者: 柳烟    时间: 2011-2-19 20:55

Carr1960 {
; Updated for UF2 by Erik Reckase, March 2000
           ; Modified Sylvie Gallet frm.
init:
  z=c=1/(pixel-conj(1/pixel)-flip(1/pixel))
  int compt=0, int limit=round(real(p1)), float bailout=4
loop:
  IF (compt>limit)
    c = (-.743380900000982,-.131850030300002)
  ENDIF  
  z=z*z+c
  compt=compt+1
bailout:
  |z|<=bailout
default:
  title = "Carr 1960"
  periodicity = 0
  maxiter = 500
  magn = 1
  center = (0,0)
  method = multipass
  param p1
    caption = "Iter Limit"
    default = (100,0)
    hint = "The real part of this parameter signals a change \
            in the value of c. The imaginary part is not used."
  endparam
}
http://u.115.com/file/f6d0cc5337#
Carr1960.gsp (48.89 KB)

附件: Carr1960.gsp (2011-2-19 20:55, 48.89 KB) / 下载次数 1855
http://inrm3d.cn/attachment.php?aid=10230&k=fe4d6a39519e665e5dd61353cd3a7cb4&t=1732389211&sid=6b6J6a




欢迎光临 inRm3D: 画板论坛 (http://inrm3d.cn/) Powered by Discuz! 7.0.0