aUCBLogo Demos and Tests / testfillrect2


be testfillrect2
   
cs
   
perspective 
   
axes
   
wireframe=true
   
pu
   
fillRect2 [-10 -20][200 10050
   
rotatescene2

   
be fillRect2 p1 p2 thickness
      
ifelse wireframe
      
[   local [p]
         
p=PosO
         
rect p1 p2
         
setRelPos p1.1 p1.2 0
         
leftroll 90
         
rect [0 0List thickness p2.2-p1.2
         
down 90
         
rect [0 0List thickness p2.1-p1.1
         
up 90
         
setRelPos p2.2-p1.2 p1.1-p2.1
         
down 180
         
rect [0 0List thickness p2.2-p1.2
         
down 90
         
rect [0 0List thickness p2.1-p1.1
         
setPosO p
      
][
         
fillRect p1 p2
         
p=PosO
         
fd p2.2
         
right 90
         
fd p2.1
         
rightroll 90
         
fillRect [0 0List -thickness p1.1-p2.1
         
down 90
         
fillRect [0 0List -thickness p1.2-p2.2
         
fd p1.2-p2.2
         
down 90
         
fillRect [0 0List -thickness p2.1-p1.1
         
fd p2.1-p1.1
         
down 90
         
fillRect [0 0List -thickness p1.2-p2.2
         
         
setPosO p
         
up 90
         
fd thickness
         
down 90
         
fillRect p1 p2
         
down 90
         
fd thickness
         
up 90
      
]
   
end
end   

be PosO
   
output List PosXYZ Orientation
end

be setPosO p
   
setPosXYZ p.1
   
setOrientation p.2
end

be setRelPos x y z
   
fd y
   
rt 90 fd left 90
   
up 90 fd down 90
end

be rect p1 p2
   
local [p]
   
p=PosO
   
setRelPos p1.1 p1.2 0
   
PenDown
   
setRelPos p2.2-p1.2 0
   
setRelPos p2.1-p1.1 0 0
   
setRelPos p1.2-p2.2 0
   
setRelPos p1.1-p2.1 0 0
   
PenUp
   
setPosO p
end