返回列表 回复 发帖
已经搞定
未命名.jpg
未命名.jpg
Uf算法分圈作色.gsp (22.64 KB)
分圈作色问题解决了,新问题又来了,如何将遮罩住M集的肚子的部分隐藏?
目前这问题还找不到解决方案,那位大侠解决后,告知,不胜感激。
8切圆陷阱,还不存在这么棘手的问题。
73# 柳烟


把M集放最上层就是了。
榕坚 发表于 2012-12-29 17:36
UF中解决得是最完美的,可惜,难解密。如何操作?
8切圆陷阱按井号作色,扫图一幅,按前面楼层榕老师所给的定位与缩放倍数进行,迭代次数2000.
未命名.jpg
uf8切圆陷阱按井号作色.gsp (28.23 KB)
这个陷阱来自UF,代码是三维的,弄不懂,如何用伪3D构造?
Fractal2.png
附UF陷阱算法的典型代码:
UF中的另一特效:
作色程序:
TangentCircles {
; Mark Townsend, 29 Apr 1999
;
; ****** NOTE *******
; Instead of using this coloring method use
; the Tangent Balls mode of the Paul Carlson's
; Orbit Traps method in pwc.ucl.
; *******************
;
; Paul W. Carlson's Tangent Circles oribit trap
; method.
;
init:
  int iter = 0
  float x = 0
  float y = 0
  float Xabs = 0
  float Yabs = 0
  float Dsgd0 = 0
  float Dsgd1 = 0
  float Dsgd2 = 0
  float Circle = 0
  float ZtoPsqd = 0
  float Rc = @r
  float Phi = #pi * 0.125
  float Rm = Rc / sin(Phi)
  float RcSqd = Rc^2
  float Py = Rm * sin(2 * Phi)
  float Px = Rm * cos(2 * Phi)
  bool Trapped = false
loop:
  iter = iter + 1
  x = real(#z)
  y = imag(#z)
  if abs((cabs(#z) - Rm)) < Rc && iter > @skip && !Trapped
    Xabs = abs(x)
    Yabs = abs(Y)
    Dsgd0 = Xabs^2 + (Yabs - Rm)^2
    Dsgd1 = (Xabs - Px)^2 + (Yabs - Py)^2
    Dsgd2 = (Xabs - Rm)^2 + Yabs^2
    if Dsgd0 < RcSqd
      Trapped = true
      ZtoPsqd= Dsgd0
      if y > 0
        Circle = 0
      else
        Circle = 4
      endif
    elseif Dsgd1 < RcSqd
      Trapped = true
      ZtoPsqd= Dsgd1
      if y >  0&& x > 0
        Circle = 1
      elseif y < 0 && x > 0
        Circle = 3
      elseif y < 0 && x < 0
        Circle = 5
      else
        Circle = 7
      endif
    elseif Dsgd2 < RcSqd
      trapped = true
      ZtoPsqd = Dsgd2
      if x > 0
        Circle = 2
      else
        Circle = 6
      endif
   endif
endif
final:
  if !trapped
    #solid = true
  else
    Circle = (Circle + @off) % 8
    float Ratio = sqrt(ZtoPsqd/Rcsqd)
    float ColorIndex = 29 * Ratio + Circle * 30
    #index = (ColorIndex + 1) % 256 /256
  endif
default:
  title = "Carlson Tangent Circles"
  param r
    caption = "Circle radius"
    default = 0.2
  endparam
  param skip
    caption = "Iters to skip"
    default = 1
    hint = "Iterations to skip."
  endparam
  param off
    caption = "Hue cycle"
    default = 0
    min = 0
    max = 7
    hint = "This rotates the coloring order of the balls."
  endparam
}
75# 柳烟


你在8切圆中不是已经办到了吗?
榕坚 发表于 2012-12-31 09:17
这单圆环陷阱与八切圆陷阱不一样,如果全部环带均作成单一色采,很易将M集放在各环带上面,如果弄成不同颜色的环带,不好解决。
8扇带轨迹井(UF算法):
未命名.jpg
此乃静态陷阱,圆环带的圆心在坐标系原点。如果要将圆心搞成动态的,用幅角设计陷阱,比UF的用坐标判断陷阱可能要简单点。
贴上UF中的效果图,大家欣赏欣赏(位于kcc3.ucl):
Fractal2.jpg
8扇形带轨迹井(UF算法).gsp (30.94 KB)
整了一个8扇带动态陷阱,先想用幅角整,做的过程中,发现也麻烦,不得已还是用UF里的坐标来判断点是否掉入陷阱,后来顿悟出方法完全与静态类似,略作变动,也十分简单。UF中代码编辑者,好像数学修为均一流的,令人叹服。
未命名.jpg
8扇带陷阱UF法动态.gsp (31.74 KB)
83# 榕坚
说得是。确实省略了你说的那个参数功能,让各圆色彩通过改变此参数让八球颜色轮变。当用调色板上色时,发现UF中的那个参数即程序中的off,不好加入,所以用了叶氏论文中的方法,各球比起UF有立体感。很难兼顾,这,大家可发挥聪明智慧,看看如何着。
返回列表