DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦cade2d758⟧ TextFile

    Length: 1536 (0x600)
    Types: TextFile
    Names: »spiraltxt«

Derivation

└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦dd2c1b53f⟧ »tplot« 
            └─⟦this⟧ 

TextFile

scope temp spiral
clear temp spiral
spiral=set 100
scope day spiral
spiral=algol list.no
begin
  integer i,j,k,N,M,type;
  real topiN,v,origx,size;
;
  write(out,<:<10>kanter,omdrejninger,formindskelse=:>);outendcur(32);
  read(in,N,M,v);
;
if N>1 and M>0
then
begin
  real array x(1:N+1,1:2);
;
INIT:
  write(out,<:type (1,2,3), format (>0:houstona) =:>);outendcur(32);
  read(in,type,size);
  if size=0 then
  begin  size:=5;  origx:=5.0*1024.0/766.0;
    setplotname(<:tek4006a:>,0);
    plotform(10,2*origx,10);
  end
  else
  begin
    setplotname(<:houstona:>,0);
    plotform(10,size,size);
    size:=size/2.0;  origx:=size;
  end;
  if v<0.0 or v>1.0 then v:=0.5;
  topiN:=2.0*pi/N;
  comment
  writeplot(<:polygonspiral, :>,N,<: kanter:>);
  for i:= 1 step 1 until N
  do begin
       x(i,1):=origx+size*cos((i-1)*topiN);
       x(i,2):=size+size*sin((i-1)*topiN);
     end;
;
LOOP:
  for i:= 1 step 1 until M
  do begin
       x(N+1,1):=x(1,1);
       x(N+1,2):=x(1,2);
       for j:= 1 step 1 until N
       do begin
            if type=1 or type=3 then
               plotline(x(j,1),x(j,2),origx,size);
            if type=2 or type=3 then
               plotline(x(j,1),x(j,2),x(j+1,1),x(j+1,2));
            for k:= 1,2
            do x(j,k):=x(j,k)+v*(x(j+1,k)-x(j,k));
          end j;
       v:= if v<0.5 then v-v/M else v+(1-v)/M;
     end i;
  plotclose;
end N;
end
▶EOF◀