返回列表 回复 发帖
扫描板的可旋转太极图
可旋转太极图20140610.gsp (11.99 KB)
未命名.jpg
2014-6-13 09:03
7# xiaongxp
不用椭圆轨迹线,大大提高扫描速度
太极图陷阱工具.gsp (7.47 KB)
太极图.gsp (8.62 KB)
想用代数方法造出可将太极图中心移到坐标系的任何地方,整出的图不对劲。由于数学丢得有点久,遇到几个疑难问题请教大家:
1、若将原点处的椭圆x^2/a^2+y^2/b^2=1平移到(m,n)再绕此点旋转一个角度A,或先旋转一个角度A,再平移至(m,n),应该是一样的,该椭圆的方程是什么?
我照这样干的,不知有无问题:
(xcosA-ysinA+m)^2/a^2+(xsinA+y*cosA+n)^2/b^2=1
上面的理解是错的。
13# 柳烟
先平移再旋转:(xcosA-ysinA-m)^2/a^2+(xsinA+y*cosA-n)^2/b^2=1
先旋转再平移:((x-m)cosA-(y-n)sinA)^2/a^2+((x-m)sinA+(y-n)*cosA)^2/b^2=1
13# 柳烟
还是几何变换法要比代数法方便些,角度位置任意设
太极图n.gsp (9.96 KB)
加点变换:
未命名.jpg
2014-6-13 09:13

太极图加点变换.gsp (12.61 KB)
16# xiaongxp
代数法似可将此太极图作为陷阱,造复分形,不知几何法造复分形如何
此陷阱造复分形,我试了试,看来我是服侍不了这道题了,那位高人试试。
未命名.gif
2014-6-13 09:14

红色代表离卦,属火,至刚之物。蓝色代表坎卦,属水,天地至柔之物。太极图中的二色,可代表阴阳,刚柔。
太极图陷阱UF代码:
Taijitu20140611 {

init:
  int iter = 0
  float x = 0
  float y = 0
  float d1 = 0
  float d2 = 0
  float d3 = 0
  float L1 = 0
  float L2 = 0
  float Circle = 0
  float ZtoPsqd = 0
  float Rc1 = @r
  float Rc2 = 0.45*Rc1
  float Rc4= 1/6*Rc1
  float Phi = #pi * @angle/180
  float xx= Rc2*cos(Phi)
  float yy= Rc2*sin(Phi)
  float Ty =0
  bool Trapped = false
loop:
  iter = iter + 1
  x = real(#z)
  y = imag(#z)

    d1 = sqrt((x-@ox)^2 + (y - @oy)^2)
    d2 = sqrt((x - xx-@ox)^2 + (y - yy-@oy)^2)
    d3 = sqrt((x + xx-@ox)^2 + (y +yy-@oy)^2)
    L1=(x-@ox)*sin(Phi)-(y-@oy)*cos(Phi)
    L2=(x-@ox)*cos(Phi)+(y-@oy)*sin(Phi)
    Ty=((x-@ox)*cos(-Phi)-(y-@oy)*sin(-Phi))^2/(2*Rc2)^2+ ((x-@ox)*sin(-Phi)+(y-@oy)*cos(-Phi))^2/Rc1^2
if iter > @skip && !Trapped
    if (d2< Rc2 && L1<=0 && L2>=0 && d2>Rc4)||(Ty<1 && L1>=0 && L2>=0 && d2>=Rc4)||(d3>=Rc2 && L1>=0 && d1<Rc1 && L2<=0)||(Ty>=1 && L1<=0 && d1<Rc1 && L2<=0)
      Trapped = true
      ZtoPsqd= 1
      Circle = 1

    elseif (d3<Rc2 && L1>=0 && L2<=0 && d3>=Rc4)||(Ty<1 && L1<=0 && L2<=0 && d3>=Rc4)||(d2>=Rc2 && L1<=0 && d1<Rc1 && L2>=0)||(Ty>=1 && L1>=0 && d1<Rc1 && L2>=0 )
      Trapped = true
      ZtoPsqd= 1
      Circle = 2
    elseif d2 < Rc4
      trapped = true
      ZtoPsqd = d2/Rc4
      Circle = 3
    elseif d3 < Rc4
      trapped = true
      ZtoPsqd = d3/Rc4
      Circle = 4
   endif
endif
final:
  if !trapped
    #solid = true
  else
    Circle = (Circle + @off) % 4
    float Ratio =ZtoPsqd
    float ColorIndex = 29 * Ratio + Circle * 30
    #index = (ColorIndex + 1) % 256 /256
  endif
default:
  title = "Taijitu20140611"
  param r
    caption = "Circle radius"
    default = 1.0
  endparam
  param ox
    caption = "ox"
    default = 0.0
  endparam
  param oy
    caption = "oy"
    default = 0.0
  endparam
  param angle
    caption = "angle"
    default = 45.0
  endparam
  param skip
    caption = "Iters to skip"
    default = 1
    hint = "Iterations to skip."
  endparam
  param off
    caption = "Hue cycle"
    default = 0
    min = 0
    max = 4
    hint = "This rotates the coloring order of the balls."
  endparam
}
今日编了个太极图陷阱的UF代码,但作色仍不成熟,还须研究完善。在UF中扫一个J集:
3.gif
2015-2-1 17:25

UF中的这个陷阱分形,有些鱼眼看起来没有,但放大后有,这是UF要改进的地方。用GSP作,我想是不会出现这个问题的。
返回列表