返回列表 回复 发帖
101# xiaongxp


这也不是英文,是德文。这应该是个IFS分形。图元是圆。对圆作莫比乌斯变换而成的分形图形。难的是不知道这个变换的具体变换公式是什么。
global:
  
  Mobius a0
  Mobius b0
  root = IIf(AlternateRoot, 0, 1)
  
  switch (Recipe) {
    case Recipes.Grandma
      Mobius.GrandmaRecipe(TraceA, TraceB, root, a0, b0)
      specialWordP = GrandmaP
      specialWordQ = GrandmaQ

    case Recipes.Jergensen
      Mobius.JergensenRecipe(TraceA, TraceB, root, a0, b0)
      specialWordP = GrandmaP
      specialWordQ = GrandmaQ

    case Recipes.Riley
      Mobius.RileyRecipe(RileyParameter, a0, b0)
      specialWordP = RileyP
      specialWordQ = RileyQ

    case Recipes.Maskit
      Mobius.MaskitRecipe(MaskitParameter, a0, b0)
      specialWordP = MaskitP
      specialWordQ = MaskitQ
  }
  Mobius R0
  Mobius R1
  '
  ' Transform/Conjugate the base generators a0 and b0.
  '
  if (ApplyUnitCircleGroupTransform) {
    R0 = Mobius.UnitCircleGroup(DegreeToRadian(UCGAngle), UCGPoint)
    R1 = Mobius.Inverse(R0)
    a0 = Mobius.Multiply3(R0, a0, R1)
    b0 = Mobius.Multiply3(R0, b0, R1)
  }
  if (ConjugateBy <> MobiusSpecialMatrixTypes.Identity) {
    R0 = Mobius.SpecialMatrix(ConjugateBy)
    R1 = Mobius.Inverse(R0)
    a0 = Mobius.Multiply3(R0, a0, R1)
    b0 = Mobius.Multiply3(R0, b0, R1)
  }
  Mobius.Normalize(a0)
  Mobius.Normalize(b0)
  Mobius A1 = Mobius.Inverse(a0)
  Mobius B1 = Mobius.Inverse(b0)
  '
  ' Define the commutators.
  '
  Mobius abAB = Mobius.Multiply4(a0, b0, A1, B1)
  Mobius baBA = Mobius.Inverse(abAB)
  '
  ' Fill w[] with the base set and the commutators.
  ' Include the special word if required.
  '
  if (specialWordP <> 0 && specialWordQ <> 0) {
    Mobius sw0 = Mobius.PQWord(specialWordP, specialWordQ, a0, B1)
    Mobius sw1 = Mobius.Inverse(sw0)
    Mobius w[] = a0, b0, A1, B1, abAB, baBA, sw0, sw1
  } else {
    Mobius w[] = a0, b0, A1, B1, abAB, baBA
  }
  const Complex base = Array.Dim1(w[])
  const Complex count = base * Power
  const Mobius generator[count]
  const Complex indexLUT[10000]
  Complex p[base]
  
  for (i = 0, i < base, i += 1) {
    p = IIf(i < 4, 1, CommutatorWeight)
  }
  Math.NormalizeWeights(p[], base)
  Math.GenerateIndexLookupTable(p[], base, indexLUT[])

  for (i = 0, i < Power, i += 1) {
    Array.Copy(w[], 0, generator[], i*base, base)
   
    for (j = 0, j < base, j += 1) {
      w[j] = Mobius.Multiply(w[j], generator[j])
    }
  }
  
initialize:
  
  z = Mobius.Sink(abAB)
  
iterate:
  
  attractorIndex = Math.GenerateIndex(indexLUT[])

  if (Random.Number() < Weight) {
    index = attractorIndex
  } else {
    index = attractorIndex * Random.Integer(Power)
  }
  z = Mobius.TransformPoint(generator[index], z)
  
properties:.....

http://www.fractalsciencekit.com/program/orbeqn.htm中的帮助中有些没有表达式.
112# xuefeiyang
我想这个不应是圆的反演,而是关于两个基圆的点的反演集(二圆极限集),就像IFS-Apollony是关于四个基圆的点的反演集(四圆极限集 IFS-circle limit set [Apollony] .gsp (11.16 KB) )一样。这两个关于二基圆的点的反演变换是z1←A(z1),z2←B(z2),
其中 未命名.jpg
就是不知两者如何作用。
我们对画板分形的研究,在复变分形、L系统、函数迭代系统可以说成果颇丰,但在特殊IFS——圆极限集方面却知之甚少。建议胡兄再开一个专帖,领导大家探讨一下这方面的技术。这些资源链接可能对研究有帮助:
1——http://www.math.union.edu/research/circleinversions/welcome.html
2——http://www-m10.ma.tum.de/bin/view/MatheVital/IndrasPearls/WebHome
改变FSK中的参数得到下列图形

1-1.5.JPG (70.6 KB)

1-1.5.JPG

1-1.jpg (20.01 KB)

1-1.jpg

1-2.jpg (18.02 KB)

1-2.jpg

2-1.jpg (18.14 KB)

2-1.jpg

116# changxde
期待changxde老师为大家再次带来惊喜。
学习一下M变换,做一个IFS迭代,没有用资料中的数据,采用手动调节,很难调整到理想位置,不知是不是我们所要,不过可以得到多种图形。

screenshot50.jpg (17.39 KB)

screenshot50.jpg

screenshot46.jpg (17.99 KB)

screenshot46.jpg

screenshot47.jpg (16.84 KB)

screenshot47.jpg

screenshot48.jpg (17.8 KB)

screenshot48.jpg

screenshot49.jpg (16.98 KB)

screenshot49.jpg

IFS.gsp (43.75 KB)

用资料中的数据做了一个,可我的机子配置太低,看不到全貌,不知做法对不对,请版友看看。

screenshot51.jpg (57.94 KB)

screenshot51.jpg

IFS2.gsp (16.83 KB)

这个分形图太美了,像美女丰满的胸部。内外部的渲染采用了怎样的p公式,大家试试?
107.jpg
120# xiaongxp


这个应该是Apophysis做的吧。是J集还是M集呢?
返回列表