aUCBLogo Demos and Tests / testgradientfill


be testgradientfill
   
cs
   
s=1.5
   
bluehue=240
   
perspective
   
penUp
;   enableDepthTest
   
disableDepthTest
;   setLightAmbient RGB 1 1 1
   
enableLighting
   
setLabelFont [ArialBI]
   
setLabelAlign 1 1
   
setLightSpecular HSBA 0 0 1 1
   
setMaterialSpecular HSBA 240 0.3 1 1
   
setMaterialShininess 40
   
d=0
   
t=0
   
r=0
   
olda=0
;ignore [
   
alpha=0.15
   
for [0 335 25]
   
[   Home
      
left fd 0.2 rt a
      
AT
   
]
   
disableLighting
   
alpha=0.15
   
for [0 335 25]
   
[   Home
      
left fd 0.3 rt a
      
Rand
   
]
   
alpha=0.2
   
for [0 335 25]
   
[   Home
      
left fd 0.1 rt a
;      schreib
   
]
;]
ignore [
   
alpha=1
   
Home
   
AT
   
Home
;   left a fd 0.3 rt a
;   Rand
   
Home
;   schreib
]
   
ht
   
rotatescene
   
   
be AT_old
      
left 135 fd 230*rt 135
      
pd
      
blue 1
      
TessStart
      
blue .5
      
fd 200*s
      
rt 90
      
blue 0.3
      
fd 50*s
      
rt 45
      
blue 0.2
      
fd 50*s
      
left 90
      
blue 0.1
      
fd 50*s
      
rt 45
      
blue 0
      
fd 50*s
      
rt 90
      
blue .3
      
fd 200*s
      
rt 90
      
blue .7
      
fd 50*s
      
rt 90
      
blue .5
      
fd 130*s
      
left 90+45
      
blue .5
      
fd 50*s
      
rt 90
      
blue .6
      
fd 50*s
      
left 90+45
      
blue .9
      
fd 130*s
      
rt 90
      
blue 1
      
fd 50*s
      
rt 90
      
TessEnd
      
PU
      
fd 220*s
      
;left 90 fd 10 rt 90
      
PD
      
blue 1
      
TessStart
      
fd 50*s
      
rt 90
      
blue .3
      
fd 200*s
      
blue 0
      
fd 120*s
      
rt 90
      
blue .3
      
fd 50*s
      
rt 90
      
blue .4
      
fd 70*s
      
left 90
      
blue .7
      
fd 220*s
      
rt 90
      
blue 1
      
fd 50*s
      
rt 90
      
blue .6 
      
fd 220*s
      
left 90
      
blue 1
      
fd 200*s
      
rt 90
      
blue 1
      
fd 50*s
      
TessEnd
      
PU   fd 10 rt 90
      
black
      
PU
   
end
   
   
be AT_old2
      
left 135 fd 230*rt 135
      
pd
      
TessStart
      
fd2 200*s
      
rt 90
      
fd2 50*s
      
rt 45
      
fd2 50*s
      
left 90
      
fd2 50*s
      
rt 45
      
fd2 50*s
      
rt 90
      
fd2 200*s
      
rt 90
      
fd2 50*s
      
rt 90
      
fd2 130*s
      
left 90+45
      
fd2 50*s
      
rt 90
      
fd2 50*s
      
left 90+45
      
fd2 130*s
      
rt 90
      
fd2 50*s
      
rt 90
      
TessEnd
      
PU
      
fd 220*s
      
;left 90 fd 10 rt 90
      
PD
      
TessStart
      
fd2 50*s
      
rt 90
      
fd2 160*s
      
fd2 160*s
      
rt 90
      
fd2 50*s
      
rt 90
      
fd2 70*s
      
left 90
      
fd2 220*s
      
rt 90
      
fd2 50*s
      
rt 90
      
fd2 220*s
      
left 90
      
fd2 200*s
      
rt 90
      
fd2 50*s
      
TessEnd
      
PU   fd 10 rt 90
      
black
      
PU
   
end
   
   
be AT
      
d=40
      
t=20
      
r=10
      
olda=90
      
left 90 fd 20*rt 90
      
left 135 fd 230*rt 135+t
      
pd
      
TessStart
      
fd30 200*90-t
      
fd3 d*60+t
      
fd3 65*-120
      
fd3 100*60-t
      
fd3 d*90+t
      
fd3 200*90-t
      
fd3 d*90+t
      
fd3 130*-(90+60)
      
fd3 100*120
      
fd3 65*-(90+60)
      
fd3 130*90-t
      
fd3 d*90+t
      
TessEnd
      
pu
      
back r*(tan abs olda/2)
      
fd 230*s
      
;left 90 fd 10 rt 90
      
PD
      
TessStart
      
fd3 d*90-t
      
fd3 (270+d)*90+t
      
fd3 d*90-t
      
fd3 70*-(90-t)
      
fd3 220*90-t
      
fd3 (d*1.2)*90+t
      
fd3 220*-(90+t)
      
fd3 (200-d*0.2)*90+t
      
fd3 d*0
      
TessEnd
      
PU   fd 10 rt 90
   
end
   
   
be Rand
      
black
      
pu
      
left 90 fd 20*rt 90
      
left 135 fd 230*rt 135+t
      
setpensize [6 6]   ;[3 3]
      
olda=90
      
pd
      
fd5 200*90-t
      
fd4 d*60+t
      
fd4 65*-120
      
fd4 100*60-t
      
fd4 d*90+t
      
fd4 200*90-t
      
fd4 d*90+t
      
fd4 130*-(90+60)
      
fd4 100*120
      
fd4 65*-(90+60)
      
fd4 130*90-t
      
fd4 d*90+t
      
pu
      
back r*(tan abs olda/2)
      
fd 230*s
      
;left 90 fd 10 rt 90
      
PD
      
fd4 d*90-t
      
fd4 (270+d)*90+t
      
fd4 d*90-t
      
fd4 70*-(90-t)
      
fd4 220*90-t
      
fd4 (d*1.2)*90+t
      
fd4 220*-(90+t)
      
fd4 (200-d*0.2)*90+t
      
fd4 d*90-t
      
PU   fd 10 rt 90
      
black
      
PU
   
end
   
   
be fd2 l
      
pu 
      
fd l
   
;   show sqrt (sqr xcor/(500*s)+0.5)+(sqr ycor/(500*s)+0.5)
      
blue sqrt (sqr xcor/(500*s)+0.5)+(sqr ycor/(500*s)+0.5)
      
pd fd 0
   
end
   
   
be fd3 l a
      
pu 
      
fd l-r*((tan abs olda/2)+tan abs a/2)
   
;   (print 0.5-xcor/(400*s) 0.3-ycor/(300*s))
   ;   print sqrt (sqr 0.5-xcor/(400*s))+(sqr 0.3-ycor/(300*s))
      
blue sqrt (sqr 0.5-xcor/(400*s))+(sqr 0.3-ycor/(300*s))
      
pd fd 0
      
olda=a
      
ifelse 0
      
[   left2 -a
      
][   rt2 a
      
]
   
end
   
   
be fd30 l a
      
pu 
      
fd l-r*((tan abs olda/2)+tan abs a/2)
   
;   show sqrt (sqr xcor/(500*s)+0.5)+(sqr ycor/(500*s)+0.5)
      
blue sqrt (sqr xcor/(500*s)+0.5)+(sqr ycor/(500*s)+0.5)
      
pd fd 0
      
olda=a
      
ifelse 0
      
[   left2 -a
      
][   rt2 a
      
]
   
end
   
   
be fd4 l a
      
pd 
      
fd l-r*((tan abs olda/2)+tan abs a/2)
   
;   show sqrt (sqr xcor/(500*s)+0.5)+(sqr ycor/(500*s)+0.5)
      
olda=a
      
ifelse 0
      
[   left2 -a
      
][   rt2 a
      
]
   
end
   
   
be fd5 l a
      
pd 
      
fd l-r*((tan abs olda/2)+tan abs a/2)
      
olda=a
      
ifelse 0
      
[   left2 -a
      
][   rt2 a
      
]
   
end
   
   
be rt2 a
   
;   rt a
      
arc2 a r
   
end
   
   
be left2 a
   
;   left a
      
arc2 --r
   
end
   
   
be schreib
      
left 135 fd 230*rt 135+t
      
fd 265*rt 90-t
      
PD
      
setLabelSize (list 30 30)*s
      
label [EDELSTAHL]
      
PU fd 260*rt 90+fd 50*PD
      
vlabel [G L A S]
      
PU
      
home
      
setLabelSize [80 80]
      
fd 10*right 90 fd 80*label [&]
   
end
   
   
be vlabel chars
      
foreach chars
      
[   pu fd 50*pd
         
left 90+t-7
         
label ?
         
right 90+t-7
      
]
   
end
   
   
be blue f
      
setPC HSBA bluehue f 0.9 alpha
   
end
   
   
be black
      
setPC RGBA 0 0 0 alpha
   
end
end

be rotatescene [dphi 1][singleshot false][phi 0]
   
local [eye ddphi theta dtheta center upvector rotatescene_r dr]
   
eye=array 3
   
theta=30
   
dtheta=5
   
center={0 0 0}
   
upvector={0 1 0}
   
ddphi=dphi/3
   
rotatescene_r=500
   
dr=1.1
   
pr [leftright changes rotation speedup down set pitchESC exits]
   
dispatchMessages
   
forever
   
[   eye.1=rotatescene_r*(cos theta)*sin phi
      
eye.2=rotatescene_rsin theta
      
eye.3=rotatescene_r*(cos theta)*cos phi
      
setEye eye center upvector
      
setLightPos {00 50 100}
      
redraw
      
if singleshot [break]
      
phi=phi+dphi
      
while [key?]
      
[   dispatchMessages
         
local [ch]
         
ch=readChar
         
ifelse ch==char 255
         
[   ch=readCharExt
            
if ch==WXK_RIGHT [dphi=dphi+ddphi]
            
if ch==WXK_LEFT  [dphi=dphi-ddphi]
            
if ch==WXK_UP    [theta=theta+dtheta]
            
if ch==WXK_DOWN  [theta=theta-dtheta]
            
if ch==WXK_PRIOR [rotatescene_r=rotatescene_r/dr]
            
if ch==WXK_NEXT  [rotatescene_r=rotatescene_r*dr]
         
][
            
if ch==char 27 [stop]
            
if ch=="+ [rotatescene_r=rotatescene_r-dr]
            
if ch=="- [rotatescene_r=rotatescene_r+dr]
         
]
      
]
   
]
end