|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00) Types: TextFile Names: »plotmovetxt«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦this⟧ »plotmovetxt«
\f message plotmoveny plotmoveny=algol message.no external boolean procedure plotmoveny(x,y); value x,y; real x,y; begin own boolean bo,penst; own integer xp,yp; own real xo,yo; integer xl,xh,yl,yh,xx,yy; real xn,yn; boolean b,bn,out; procedure outside; begin if bo extract 4=0 then begin penst:=penstatus=1; if penst then penup end else ; b:=bn or bo; if b extract 2<>0 then begin xx:=if (if bn extract 2=0 then bo else bn) then xl else xh; yy:=yo+(yn-yo)/(xn-xo)*(xx-xo); b:=yy>yh or yy<yl end; if b shift (-2) extract 2<>0 then begin b:=bn shift (-2); yy:=if (if b extract 2=0 then bo shift (-2) else b) then yl else yh; xx:=xo+(xn-xo)/(yn-yo)*(yy-yo); b:=xx>xh or xx<xl end; if -,b and bo extract 4<>0 then begin bo:=false; if penst then begin penst:=true; penup end; plotmove((xx/plotunit-plotxcoor-plotsubxmin)/deltax, (yy/plotunit-plotycoor-plotsubymin)/deltay); if penst then pendown end end outside; if x=maxreal or y=maxreal then begin end else begin xn:=plotxmin*deltax+plotxcoor; xl:=((if xn<0 then 0 else xn)+plotsubxmin)*plotunit; xn:=plotxmax*deltax+plotxcoor+plotsubxmin; xh:=(if xn>plotsubxmax then plotsubxmax else xn)*plotunit; yn:=plotymin*deltay+plotycoor; yl:=((if yn<0 then 0 else yn)+plotsubymin)*plotunit; yn:=plotymax*deltay+plotycoor+plotsubymin; yh:=(if yn>plotsubymax then plotsubymax else yn)*plotunit; xn:=(x*deltax+plotxcoor+plotsubxmin)*plotunit; yn:=(y*deltay+plotycoor+plotsubymin)*plotunit; b:=bn:=false add((yn>yh)extract 1)shift 1 add((yn<yl)extract 1) shift 1 add((xn>xh)extract 1)shift 1 add((xn<xl)extract 1); out:=bn extract 4<>0; if (bn==bo) extract 4=0 then outside; if (b and bo) extract 4=0 then begin if -,out then begin xx:=xn; yy:=yn end; plotxstep:=xx-xp; plotystep:=yy-yp; if plotxstep<>0 or plotystep<>0 then begin plotxy(2); xp:=xx; yp:=yy; if out then begin penst:=penstatus=1; if penst then penup end; plotxpos:=(xp/plotunit-plotxcoor-plotsubxmin)/deltax; plotypos:=(yp/plotunit-plotycoor-plotsubymin)/deltay; end; xo:=xn; yo:=yn; bo:=bn; plotmoveny:=out; end end plotmoveny ; end ▶EOF◀