free software resistance

 the cost of computing freedom is eternal vigilance

### sf.fig *original date:* sep 2015 *originally posted:* sep 2024 this working graphics program wont translate with the latest version of fig. the reason is it assumes that a function called "abs" exists- fig does not have an abs function, because its so trivial to implement. if you supply an abs function, it should work. it should also work if you compile with an older fig version, or if you disable the error checking in the fig translator code: ``` #z display sa 280 sd 4 cx arr times sa cy arr times sa cc arr times sa rzx arr times sa plus 0 rzy arr times sa plus 0 function cir(x y c) xo = -10 yo = 0 for p -3.14159 3.14159 0.44879857142857144 zx p times 10 cos times 4 int plus x zy p times 10 sin times 4 int plus y #z pset zx zy c ifequal xo -10 pass else z line xo yo zx zy c fig xo = zx yo = zy next fig for r 1 sa 1 co randint 9 15 co r mod 7 plus 9 cc arrset r co sx randint 0 1366 cx arrset r sx sy randint 0 768 cy arrset r sy #z cir sx sy co next while function fw r sa cx cy cc rzx rzy co arrget cc r zx arrget cx r sx randint -1 1 divby 1 int times 1 plus zx zy arrget cy r sy randint -1 1 divby 1 int times 1 plus zy ifmore r 1 while rm r minus 1 cdy arrget cy rm #cky arrget cy r minus cdy abs cky sy minus cdy abs ifmore cky sd cky sy minus cdy times -.01 int mody arrget cy r plus cky cy arrset r mody fig sdm minus sd ifmore cky sdm cky sy minus cdy times -.01 int mody arrget cy r plus cky cy arrset r mody fig break wend while rm r minus 1 cdx arrget cx rm ckx arrget cx r minus cdx ##abs # ifmore ckx sd ckx arrget cx r minus cdx times -.05 int modx arrget cx r plus ckx cx arrset r modx fig sdm minus sd ifless ckx sdm ckx arrget cx r minus cdx times -.05 int modx arrget cx r plus ckx cx arrset r modx fig break wend fig #ifequal r 1 #cx arrset r sx #cy arrset r sy #else sx arrget cx r sy arrget cy r #fig z0 randint 0 1 iftrue z0 z0 co minus 8 else z0 co fig srzx arrget rzx r srzy arrget rzy r zco 0 # co minus 8 z cir srzx srzy zco display zy arrget cy r sy randint -5 5 divby 1 int times 1 plus zy zx arrget cx r sx randint -5 5 divby 1 int times 1 plus zx z cir sx sy co rr r plus 0 rzx arrset rr sx rzy arrset rr sy fig for trz 1 4 1 for r 1 sa 1 zep fw r sa cx cy cc rzx rzy next next cx arreverse cy arreverse cc arreverse for r 1 sa 1 zep fw r sa cx cy cc rzx rzy next cx arreverse cy arreverse cc arreverse z display wend ``` license: 0-clause bsd ``` # 2015 mn # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` => https://freesoftwareresistance.neocities.org