HPHP48-W,*0╦ ::
(MAKEARRY.S)
DEFINE step % 0.035
DEFINE radius % 20
DEFINE xs 40 ( radius 2 * )
DEFINE ys 40 ( radius 2 * )
DEFINE Galpha 1GETLAM
DEFINE Gbeta 2GETLAM
DEFINE Gr 3GETLAM
DEFINE Gx 4GETLAM
DEFINE Gy 5GETLAM
DEFINE Gz 6GETLAM
DEFINE Gpara 7GETLAM
DEFINE Palpha 1PUTLAM
DEFINE Pbeta 2PUTLAM
DEFINE Pr 3PUTLAM
DEFINE Px 4PUTLAM
DEFINE Py 5PUTLAM
DEFINE Pz 6PUTLAM
DEFINE Ppara 7PUTLAM
SETRAD
NULL{}
ys ZERO_DO
NULL{}
xs ZERO_DO
0 >TCOMP
LOOP
>TCOMP
LOOP
ZEROZEROZERO
ZEROZEROZERO
{
NULLLAM NULLLAM NULLLAM
NULLLAM NULLLAM NULLLAM
NULLLAM
} BIND
%PI
Palpha
BEGIN
Galpha %0>
WHILE
::
%PI
Pbeta
BEGIN
Gbeta %0>
WHILE
::
Galpha %COS
Gbeta %SIN
radius
%* %*
% 0.5 %-
%CEIL
radius
%+ %1+
COERCE
Px
% 0.833
Gbeta %COS
radius
%* %*
% 0.5 %-
%CEIL
radius
%+ %1+
COERCE
Py
Galpha %SIN
Gbeta %SIN
radius
%* %*
% 0.5 %-
%CEIL
* Pz
Gx #0=
Gy #0=
Gx xs #>
Gy ys #> OR OR OR
ITE DROP
::
radius
SWAP %-
%># bitRR HXS>#
Gpara
DUP
Gy NTHCOMPDROP
ROTSWAP Gx
SWAP
PUTLIST SWAP
Gy
SWAP PUTLIST
Ppara
;
Gbeta step %-
Pbeta
;
REPEAT
Galpha step %-
Palpha
;
REPEAT
Gpara
ABND
;