返回列表 回复 发帖
将就上楼文件,扫一个先上后下:
未命名.jpg
怪民曲线下的M集:
未命名.jpg
扫图正在兴头上,再整一个:
未命名.jpg
女士头戴这种蝴蝶结,一定漂亮之极!
J集:
未命名.jpg
请问正方形的直角坐标方程是什么假如正方形的中心在坐标原点,边平行于XY轴,我想造一个正方形陷阱,那位数学大师帮这个忙。
正方形陷阱已经设计好了,如图示:
未命名.jpg
单正方形环轨迹ID整合,用常老师算法及加进部分UF功能:
未命名.jpg
单正方形陷阱轨迹ID整合.gsp (31.41 KB)
前面所附的等边三角形陷阱,应该可以解决了。UF中也有类似陷阱,但那代码,用三维法作,颜色与我用这调色板一样,这辈子都休想弄懂了,只好用伪3D作,自我感觉差不了多少。
问题:如何将135楼的中心在原点的正方形陷阱,设计得更一般化,即旋转任意一个角度的正方形陷阱,大家可研究如何作?好象难度过大,不知有何妙法?
用代数法设计陷阱。如果用几何法设计陷阱,我担心带出后,扫不动了,用代数法整,对扫描速度影响很微小。不知怎么搞的,这个专题,总觉得有好多问题涌出,其中不泛乐趣。
任意的正方形陷阱,经过反复弄,失败了一次,换个思维,终于成功。
未命名.jpg
单个正方形陷阱轨迹.gsp (35.92 KB)
活动单正方形陷阱UF算法下的J集:
未命名.jpg
活动单正方形陷阱UF算法下的J集.gsp (30.05 KB)
玩法:我文件中的iter参数,改变值,可使各正方形环带的颜色,在四种间轮替。其它参数,你一玩,就知道了。我今天整了个J集,自我感觉,还不错。
将我整的正方形陷阱UF算法,整成UF代码,发在这里:
正方形陷阱轨迹ID {
init:
  int iter = 0
  float Circle=0
  float x = 0
  float y = 0
  float u = 0
  float v= 0
  float xa=0
  float ya=0
  float xb=0
  float yb=0
  float xc=0
  float yc=0
  float xd=0
  float yd=0
  float lac=0
  float lbd=0
  float Dsgd1 = 0
  float ZtoPsqd = 0
  float Rc = @r
  float R= sqrt(2)*Rc
  float m = @angle*pi/180
  float H=@h
  float ID=0
  bool Trapped = false
loop:
  iter= iter + 1
  x = real(#z)
  y = imag(#z)
  u=R*cos(m)
  v=R*sin(m)
  xa=u+@o1x
  ya=v+@o1y
  xb=-v+@o1x
  yb=u+@o1y
  xc=-u+@o1x
  yc=-v+@o1y
  xd=v+@o1x
  yd=-u+@o1y
  lac=(ya-yc)*x-(xa-xc)*y+(xa*yc-ya*xc)
  lbd=(yb-yd)*x-(xb-xd)*y+(xb*yd-yb*xd)
  if lac>0&&lbd>0
    Dsgd1=abs((ya-yd)*x-(xa-xd)*y+(xa*yd-ya*xd))/sqrt((ya-yd)^2+(xa-xd)^2)
  elseif lac<0&&lbd>0
    Dsgd1=abs((ya-yb)*x-(xa-xb)*y+(xa*yb-ya*xb))/sqrt((ya-yb)^2+(xa-xb)^2)
  elseif lac<0&&lbd<0
    Dsgd1=abs((yb-yc)*x-(xb-xc)*y+(xb*yc-yb*xc))/sqrt((yb-yc)^2+(xb-xc)^2)
  elseif lac>0&&lbd<0
    Dsgd1=abs((yc-yd)*x-(xc-xd)*y+(xc*yd-yc*xd))/sqrt((yc-yd)^2+(xc-xd)^2)
  endif
if iter>@skip
  if (@rangevar==0&&!Trapped) ||(@rangevar==1)
    if Dsgd1 <H
     ID=iter
     ZtoPsqd= Dsgd1
     Trapped= true
    endif
   endif
  endif
final:
  if !Trapped
    #solid=true
  else
    Circle = (@off+ID%3)%4
    float Ratio = ZtoPsqd/H
    float ColorIndex = 29 * Ratio + Circle * 45
    #index = (ColorIndex +21) % 256 /256
  endif
default:
  title = "正方形陷阱轨迹ID"
  param r
    caption = "Circle radius"
    default = 0.5
  endparam
    param h
    caption = "h"
    default = 0.15
  endparam
param o1x
    caption = "o1x"
    default =0.0000
  endparam
param o1y
    caption = "o1y"
    default =0.0000
  endparam
param rangevar
    caption="range variable"
    default=0
    enum="先上后下" "后来居上"
  endparam
param off
    caption = "off"
    default =1
  endparam
param angle
    caption = "angle"
    default =0
  endparam

param skip
    caption = "skip"
    default =0
  endparam
}
用UF生成一幅J集:
Fractal2.jpg
返回列表