返回列表 回复 发帖
陷阱变换单圆环变8切环 {
init:
  int iter = 0
  float Circle=0
  float x = 0
   float s = 0
   float L1 = 0
   float L2 = 0
   float L3 = 0
   float L4 = 0
  float y = 0
  float Dsgd1 = 0
  float ZtoPsqd = 0
  float Rc = @r
  float H=@h
  float ID=0
  bool Trapped = false
loop:
  x = real(#z)
  y = imag(#z)
    l1=tan(pi/8)*x-y
  L2=tan(pi/8)*x+y
  L3=tan(3*pi/8)*x-y
  L4=tan(3*pi/8)*x+y
  if L1<0&&L3>0
  s=-pi/4
  elseif L3<0&&L4>0
  s=-pi/2
  elseif L4<0&&L2>0
  s=-3*pi/4
  elseif L2<0&&L1<0
  s=pi
  elseif L1>0&&L3<0
  s=3*pi/4
  elseif L3>0&&L4<0
  s=pi/2
  elseif L4>0&&L2<0
  s=pi/4
  elseif L1>0&&L2>0
  s=0
  endif
   ZZ=#z*exp(1i*s)
  x=real(ZZ)
  y=imag(ZZ)
  Dsgd1 =abs(sqrt((x-(Rc+H)/sin(pi/8))^2+y^2)-Rc)
if iter>@skip
  if (@rangevar==0&&!Trapped) ||(@rangevar==1)
    if Dsgd1 <H
     ID=iter
     ZtoPsqd= Dsgd1
     Trapped= true
    endif
   endif
  endif
  iter= iter + 1
final:
  if !Trapped
    #solid=true
  else
    Circle = (@off+ID)%7
    float Ratio = 1-ZtoPsqd/H
    float ColorIndex = 29 * Ratio + Circle * 30
    #index = (ColorIndex +1) % 256 /256
  endif
default:
  title = "陷阱变换单圆环变8环"
  param r
    caption = "Circle radius"
    default = 0.05
  endparam
    param h
    caption = "h"
    default = 0.02
  endparam

param rangevar
    caption="range variable"
    default=0
    enum="先上后下" "后来居上"
  endparam
param off
    caption = "off"
    default =1
  endparam
param skip
    caption = "skip"
    default =0
  endparam
}
0.jpg
代码中,r=0,H为非零正数,即可得八切球陷阱。
1.jpg
单变8切环的再变换:
2.jpg
8切环的陷阱再变换.gsp (20.11 KB)
加载M集:GSP
1.jpg
UF:
2.jpg
1.jpg
2.jpg
M集.gsp (24.18 KB)
圆迭代雪花:UF
1.jpg
2.jpg
画板文件:
3.jpg
4.jpg
安尼女王花:
安妮女王的花.jpg
1.jpg
安尼女王花8切圆20150228.gsp (39.63 KB)
此物咋整
Golden Section.jpg
等边三角形陷阱设置优化20150301.gsp (21.13 KB)
2.jpg
用数学变换设置陷阱,算法简单巧妙。等边三角形陷阱,只要算好一边,另两边所在陷阱通过分区块旋转即得,省事。
307# xiaongxp
感觉到用画板难。
将308#陷阱加载圆科赫雪花,扫图:
1.jpg
2.jpg
等边三角形陷阱下的圆科赫雪花20150301.gsp (29.87 KB)
返回列表