aUCBLogo Demos and Tests / smith2


to smith1
   
pr "Smith1
   
; z1=0+0i ; z1= 3+5i
   ; pos1 = se -300 0 _setpos pos1
   
f=400
   
hT
   
;setPC rgb 1 0 0
   ;setPenSize 10
   
for [k2 -1 1 .5]
   
[   PD
      
for [k1 -100 100 .1]
      
[
         
; z2= k2*z1+(2+k1*3i)
         
z2k2+(2+k1*3i)
         
w=(z2-1)/(z2+1)
         
; coords=fPut se real z1*f imag z1*f lPut se real w*f imag w*f []
         
_setPos Se f*real w f*imag w
         
; pr Se f*real w f*imag w  ; pr coords
         ; hT Line coords 1
      
]
      
PU
   
]
   
;setPC rgb 0 1 0
   
for [k2 1 5 .2]
   
[   PD
      
for [k1 -100 100 .1]
      
[
         
; z2= k2*z1+(2+k1*3i)
         
z2k2+(2+k1*3i)
         
w=(z2-1)/(z2+1)
         
; coords=fPut se real z1*f imag z1*f lPut se real w*f imag w*f []
         
_setPos Se f*real w f*imag w
         
; pr Se f*real w f*imag w  ; pr coords
         ; hT Line coords 1
      
]
      
PU
   
]
   
;setPC rgb 0 0 1
   
for [k2 5 10 1]
   
[   PD
      
for [k1 -100 100 .1]
      
[
         
; z2= k2*z1+(2+k1*3i)
         
z2k2+(2+k1*3i)
         
w=(z2-1)/(z2+1)
         
; coords=fPut se real z1*f imag z1*f lPut se real w*f imag w*f []
         
_setPos Se f*real w f*imag w
         
; pr Se f*real w f*imag w  ; pr coords
         ; hT Line coords 1
      
]
      
PU
   
]
   
;setPC rgb 1 0 0
   
for [k2 10 20 2]
   
[   PD
      
for [k1 -100 100 .1]
      
[
         
; z2= k2*z1+(2+k1*3i)
         
z2k2+(2+k1*3i)
         
w=(z2-1)/(z2+1)
         
; coords=fPut se real z1*f imag z1*f lPut se real w*f imag w*f []
         
_setPos Se f*real w f*imag w
         
; pr Se f*real w f*imag w  ; pr coords
         ; hT Line coords 1
      
]
      
PU
   
]
   
sT
end

to smith2
   
home
   
;setPenSize 4
   
pr "Smith2
   
; z1= 3+5i
   ; pos1 = se -300 0  _setpos pos1
   
rf=60 ; radius factor
   
phi0=Pi/; start angle
   
hT
   
c3i=3i
   
for [k2 -.9 .9 .05]
   
[   PD
       
for [k1 0 20 .1]
       
[
         
z= (1+k2*c3i)+k1
         
y=1/z
         
w=(y+1)/(y-1)
         
; coords=fPut se real z1*f imag z1*f lPut se real w*f imag w*f []
         ; x1=r*RadCos phi1 y1=r*RadSin phi1
         
x3=rf*real w  x4=rf*imag w
      
;    r=rPol x3 x4  phi=pPolRad x3 x4
      ;    phi=phi0+phi
      ;    x3=xRec r phi  x4=yRec r phi
         
_setPos Se (x3+460x4
      
;    pr Se f*real w f*imag w  ;pr coords
      ;    hT Line coords 1
      ;   pr Se x3 x4
      
]
      
PU
   
]
   
sT
end

to xRec r phi
  
op r*radCos phi
end

to yRec r phi
  
op r*radSin phi
end

to rPol x y
  
op Sqrt (x*x+y*y)
end

to pPolDec x y
  
if and x>y>[op ArcTan y/x]
  
if x<[op 180+ArcTan y/x]
  
if and x>y<[op 360+ArcTan y/x]
end

to pPolRad x y
  
if and x>y>[op radArcTan y/x]
  
if x<[op Pi+radArcTan y/x]
  
if and x>y<[op 2*Pi+radArcTan y/x]
end

to rad alpha
  
op Pi*alpha/180
end

to deg phi
  
op 180*phi/Pi
end

to dd2 k2
; [-1 1] [1 5] [5 10] [10 20]
  
if k2<[op .1]
  
if and k2>=k2<[op .2]
  
if and k2>=k2<10 [op 1]
  
if and k2>=10 k2<20 [op 2]
end

;Make "Startup [smith]