plib.avm 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # point (1634)
  2. # - x
  3. # - y
  4. # - r
  5. # - t
  6. # add (1528)
  7. # invert (1521)
  8. # orbit (6098)
  9. # rotate (1462)
  10. # scale (1464)
  11. #
  12. {{{wS_w{Qx[sJMh{LSgKzMpz^[M{qxMB{uHRpCcqXRM{Yv>SyXLsQlUzo{scq[syrIq<lSccs{yl?SQ
  13. bysKErIlEyL<[qA{{y^jcNOkAAL`cTpm[bWJu[qc{{yPEQzYyztFNYdEStB[L>ShqT[yU{{wC[kESy=
  14. QSTFNU{Qb?=Ycmvt>[HphSyU[pYwkFgkC{ysqTFL>vYE[fDAh<v\RZn>Shpe[sYwqnt\=xxAyPiYngP
  15. >LaScVZBYetblBz[Chr[HyXsptjMmIoLcqrkQa\W\YzxJ[`^Mq`eSf>@RlBd>Z[[@CG`XC>hYuxmYYl
  16. XGo{qywkFkzOy>JZFcC\uSt?@lPx?lXFf]eY[qdEYRRvwfYsoQskSG^=qCy[vc{z\K`\UmnCWKURfBB
  17. ualOsp[lkKk=Wm]QyrJXsptjMms^[yCuxCPUz[C{^DzNEmgKkdWjk@SS[YT>vwfYaAUMK=FYipLXjMl
  18. XFx{Z[clD[<[s^D[<[qC{m{w<{]yQSXvvvjRN[xRSnK=Wm]QlimYvfRyVK=lffBLQK[D[<[<RUx{[<R
  19. Uyt]z[CP[{cunlWUopGfvkfxCqsSkKyeMRPOmFOFAyfgRzyMRfBBtzSxg<RUbTBLQK[BTCoyvCnCyt]
  20. z[KqC`sM{PqVkfzg]ftKmoSApJcU[C>sAsjJwEXpf{<sSfz]jvyq{Xd<U\Tf<zSxfF\LQK[LApAoyvC
  21. nCgytchY[y[U[zg]ftVjBg]{YbZd[Q\pnSFOFAyiEYGOX<NPeqaIESXvvvjAyXdddf<Aq{Xd<<Ka{Fb
  22. Te=Pyy<SLNkoy{{\{kRoQuk{YDVjBg]ftVi=[fiYASk{H_Ortwhay\p\uqNBQvxw\Xy>vjgvjyQfPf\
  23. =[SFFGY[sF<>d_u[nebGfu=Pyx[cs{vZoNZjLc[sygtBg]flVhBfEylalV{L`yy`JXSiEYGOW??\mTe
  24. LyZHaAQIRgvkftVj_s{Np?qReNfAyXddd?Y[sF<>d]ftzSxf]x]y{qB[`chh<zlcNfkF{PzBg=f]f]g
  25. HRtCKNKrOnLu<mW[TIDJYQLA<rz_?MlUcU[zg]ftVjBgi[{YI<>K[yGLKQVaFdAyXddd>BgsSyn\@=Y
  26. =DO{ZE`{O<WXXhGtCS<[nBglVdV]fBdEK?wCLOyk<qdIiO??\mTeTPansJUPzW{sNBg]ftVjBgAO{[r
  27. klI[{YI<>K[yGLKQVaFdBk=[SFFFU^_O{Ks{SzizCBNyOwgrvwc^x=fB]dUtqzE^HXCtrkJXti<P?Wy
  28. KQvcgUW=>Y{[rk\VjBg=flVjOxfgnkq{]P{sygx?S{sOL<_s{Np<WByQfPf^d\pzLQK[[yCux=mnKvc
  29. =fxj>cgpg{XkTVBB<>gyaInSdNcWpQXhUTPa{eLGQCNQuFHEpfgnkqK]flVdVdVy^ylYX={DYny`{Ff
  30. xgy[tQKy{V{<q{ypp<={Dy{pi<<\pzKa{Fcux>ClC_uK{{cZaXFvcNj>nxfl>b]\=CpmFxCYYGsHRkO
  31. \SpyRzvtN^ODk{G>z=qlCx]fxBfBdV]kZpgtyYjjxfmSCTkXCS<[nCXkUKnfkF{SzAO{[rkl<LGS{sO
  32. L<<piY[sF<D[<[<RU{zsPUz[JwsIYvkJKfyFx=oMlHfNoC_uYMmud_zrwi[fP>owfoLdC?GoNKPzvyj
  33. jutk<V]dVBwmlGgnvfZkNk\VgssiFzKSWgkFhQmrGs=qlCx]sGrOxfgnkq{\AO{[rkl<n][SFFG<RUb
  34. TCqC{us^D[<ZkX?flFZBg]wdVkMSWkJTHvx@RlJxPYldcYcEMHGKhtOKoqPVRqgJdC=fxj>cgpg{XkT
  35. VBBAlJDgqlg]Mpg\hkKVfVwmlGgnvfZkNk\VgssiFzKSWgkFhQmrGs=qlCx]sGrOxfgnkq{\HyQfPfb
  36. TBF]s^Cux{KslAbVjJ[]^cLVk{mdVj<FXjJCh=D\Nblk[zHa\qsVU<NzwI?KHO=QGB_QWQYvQlgfYFt
  37. GGng<FVB<?cuNyYvjjKfyIXGg]MqlJDgqlg]Mpg\hkKVfVwmlGgnvfZkNk\VgssiFzKSWgkFhQmrGs=
  38. qlCx]sGsdy{pi<F\=oyvCnCg`AOsmb=vjyenxttVh[cm^BgPZgw{tPzet?yzyn=H]YPq<oxyMdQ?GQN
  39. \g`qUOkXqsfxtzgpglCIC<yen>kNc]fx{VBgpGrgbyU?cuNyYvjjKfyIXGg]MqlJDgqlg]Mpg\hkKVf
  40. VwmlGgnvfZkNk\VgssiFzKSWgkFhQl>i[{YI<<==Pyy<SLNjKa{F^d=ftsraG]wdVfCnCz=focVjjuz
  41. [m]FettTQhll`JSJn`xmHAFpdiD<Q?aLS<vh>c]ftZvBgpQrwobIyeRg]MpBg]{elVjAFYfvwozyen>
  42. kNc]fx{VBgpGrgbyU?cuNyYvjjKfyIXGg]MqlJDgqlg]Mpg\hkKVfVwmlGgnvfZkNk\Vgr=P{sygx<z
  43. SxfU^vkY[sF<<=fy{mK^k{mdVlApA{]fCc]fuMZ]x=[_<dR_vp=j=@RPPaLnoFFUg@i@_ctTepBg{xV
  44. Bg\>cG_]wS{@z=fvttVh[cq^Bg=MtVjPS]{hIyeRg]MpBg]{elVjAFYfvwozyen>kNc]fx{VBgpGrgb
  45. yU?cuNyYvjjKfyIXGg]MqlJDgqlg]Mpg\hkKVfW`{Ffxgy[uY[sF<>d]ftSqn^^]gp{?rdwfuz[BDVU
  46. ^cuxB{zVBg]_x=Z[[Dq=Lcu]aa`GN^lCoIR`vyenxttVh[cm^BgPZgw{tOxKV_dVkKr]fd[DZZ]fqc=
  47. ftTz[ctS{@z=fvttVh[cq^Bg=MtVjPS]{hIyeRg]MpBg]{elVjAFYfvwozyen>kNc]fx{VBgpGrgbyU
  48. ?cuNyYvjjKfyIXGg]MsTkXCS<[nCXk=[SFFF<]fwqReNfBl^GJdD=dVj]x]{\TfFCrC]cu{ulVh__bT
  49. \Ny>XFHSoHCP>bYHbVcjz_[VPjCj]fd[D[tBgJYfvwcuzDhv\\B]fl[vXBh=Y=[tBhzZBgDtvClAx{?
  50. rdvBgoydVfCnCcdViUlVjBKcuzA{mK\VjjJBgCuyT]flPZBgaAt[w?[VQftPY=ft[vXBg]NcVjjx{kV
  51. X\gpetVkKr]fy>yfukRSZpgtyYjjxfmS?qReNf=gnK[yGL=rXBo^=fx=Y=[t<H=THLD[T[[v<VhmxF_
  52. KQYqKYQDFkoDUoDYUwsa{mK^k{mdVlApA{]fCc]fuMZ]x=ZXBo^=fcuyT]ebF[clVC{b]foCp=Z[>GJ
  53. dD=dVhCzc=g<SLSz=gKc]fnJJ]x=[KlyfJ]fx{VBf]x]uvBgRXBg]_uz[][xOtBgg_]fmz[RDVhAC]f
  54. uMZCzlsraVjACLVjCzc=ftPerggkKwkC<jkGfevyFz=fkVK[yGL=hWS{sOL<=bcTN=fmbF[clU\lA]E
  55. Uz[LV_EF=xtfKm{h>dmIHbXoNjyYTwYoxKV_jgcuxT]ebF[clW{udVjBKlAuyer@\Vd[DZZ]^dd[TZB
  56. [c{c=fH`ebD@c=ht\Vez[RDVU^cuxB]{udVhmy<Scl^of><VBg={elVlApA{\VoutVh__d[<SoxKV_d
  57. VkKr]fd[DZZ]fqc=ftTz[ctS{@z=fvttVh[cq^Bg=MtVjPS]{iX?^FyXFtPYFtGGorfbi[{YI<<[mP{
  58. sygx>YfOLVdfFCla^jU]`]x=zB\m\<nXJBEeHatDUoHD<=YTwpAyy>GJdD=dVj]x]{\TfFCrC]cu{ul
  59. Vh__bT\OreI=h=Y=[t<?<R?@>CrCsz`B\m^drcTN=f]x]uvBF^]y]tUz[zXBdnNbT\NXBo^=fcuyT]e
  60. bF[clVC{b]foCp=Z[>GJdD=dVhCzc=g<SLSz=gKc]fnJJ]x=[KlyfJ]fx{VBf]x]uvBgRXBg]_uz[\J
  61. [aGqsfvtzgpqljjACAO{[rkl<LJOxfgnkq{\eHf<V\H=Vb<<fC<RUvCRHod{\lFD`oN]aa]YUasQTXB
  62. o^=fx=Y=[t<H=THLD[T[[v<VhmxF_FOF\BU^cuxBTH=TNR[cp=q\CyfOLW<SLSz<<lA\m<]y]y{e=dH
  63. TfIer@\Vd[DZZ]^dd[TZB[c{c=fH`ebD@c=ht\Vez[RDVU^cuxB]{udVhmy<Scl^of><VBg={elVlAp
  64. A{\VoutVh__d[<SkVX\gpetVkKr]fy>yfukRROxfgnkq{\Y^ylYX={DYnyF\<VBUT<Eb=c\><^<PHGs
  65. L\=kQRRSjURUZcTN=fmbF[clU\lA]EUz[LV_EF=xf<<F^]xETgbTUD[<[\><>`nd=bTez[=b?<R@acu
  66. y<YT={V`pBlApA{\<H=THLD[T[[vLV?BF_VY]DBfCnCcdTfFCrC]cu{ulV_EFU^=ElWJDBf[cq^BbTe
  67. z[=d[zVBgH[LAuxIyeRg]MpBg]{elVjAFYfvwo{rGs=qlCx]sGsZpgtyYjjxfmS<<BFd<fB<<dB_>AB
  68. vukQQBuaqQreI=f^dd[>RFubBNClCtV?B<<<?<Re\<F]lAbZ`f<<F^]xETgbTUD[<[\><>`nd=bTez[
  69. =b?<R@acuy<YT={V`pBlApA{\<H=THLD[T[[vLV?BF_VY]DBfCnCcdTfFCrC]cu{ulV_EFU^=I{mK\V
  70. jjJBgCuyT]flPZBgaAt[wYwNk_qrvwngAXJxX>vxjfcgpgtBfy\<<[NrNPSqPWg^P[QRjFOF\Bd?<Re
  71. \<F]lAbZ]q\Ua\<bTBZ<<H=Vb<<fC<RUvNd<<fFCla^jU]`]x=z<D<FOF\BU^cuxBTH=TNR[cp=q\Cy
  72. fOLW<SLSz<<lA\m<]y]y{e=dHTfIKlyfJ]fx{VBf]x]uvBgRXBg]_uz[\wmlGgnvfZkNk\VgsX?^FyX
  73. FtPYFtGGorfb{tbd>QNfaAYLc{gayPf<=dUa\<bTBZ<DFd<fB<BUT<Eb=c\<?<Re\<F]lAbZ`f<<F^]
  74. xETgbTUD[<[\><>`nd=bTez[=b?<R@acuy<YT=t^of><VBg={elVlApA{\VoutVh__d[<Ss<t^kS>jA
  75. CNj>nxyfeduzPkSZgg_vkOS>vtPX[cp<?`_^WFd[cyYQPf\<Tf\>dT<<<ZFd<fB<BUT<Eb=c\<?<Re\
  76. <F]lAbZ`f<<F^]xETgbTUD[<[\><=lWJDBf[cq^BbTez[=d[zVBgH[LAuxJ[aGqsfvtzgpqljjACKVX
  77. \gpetVkKr]fy>yfukRNCnCiRSAH_dS^[WFg`_<<<[{\<C^f<F]\=bR<>U\Ut<<lAfT<>dX=Uceer@\V
  78. d[DZZ]^dd[TZB[c{c=fH`ebD@kVX\gpetVkKr]fy>yfukRLsraVjACLVjCzc=ftPerggkKx=Y=NkFbJ
  79. SR[]ApnIQa{uz[[t<=tf\>dT<Ua\<bTB[reI=h=Y=[t<?<R?@>CrCsz`B\m^dlsraVjACLVjCzc=ftP
  80. erggkKy{mK\VjjJBgCuyT]flPZBgaAt[wBTjgs?Mnd?=xuTuVkKCux]x]uz[[t<=tf\>dT>`nd=bTez
  81. [=b?<R@acuy<YT=y{mK\VjjJBgCuyT]flPZBgaAt[wOxKV_dVkKr]fd[DZZ]fqc=ftTz[ct>d\PmxUs
  82. >OC\ICKFymvCnClAp@]x]uz[[t<=xf<<F^]xETgbTUD[<[\><@{?rdvBgoydVfCnCcdViUlVjBKcuz<
  83. ^of><VBg={elVlApA{\VoutVh__d[<S\FAqAHZ\BAusCaH[Ux=Y=BTh=Y=D[DZ[csz<<H=Vb<<fC<RU
  84. v>GJdD=dVhCzc=g<SLSz=gKc]fnJJ]x=ZXBo^=fcuyT]ebF[clVC{b]foCp=Z[APJeYLBAHZuvAqCyE
  85. bFF^U^lAp@]x]uz[=bR<>U\UulWJDBf[cq^BbTez[=d[zVBgH[LAuyer@\Vd[DZZ]^dd[TZB[c{c=fH
  86. `ebD@kqfq?^eYM{OQ?{vv>d\DfEbG<SLNCnC^f<F]\VY]DBfCnCcdTfFCrC]cu{ulV_EFU^=KV`pBlA
  87. pA{\<H=THLD[T[[vLV?BF_Co=i[R^q?{vvKqez[qD<\>F^U^lAp@<<[reI=h=Y=[t<?<R?@>CrCsz`B
  88. \m^dn`nd=bTez[=b?<R@acuy<YT=wizDco=i[Rcu{P]xlV][<z>\<^dbTkzeHf<UbF[clU\lA]EUz[L
  89. CR<[F\<>dd[>RFubBNClCt<\<{KIuJst^[HBdSlK\gizEUzm{<<^dcuyF\<>dd[>RFubBNClCt<\<<<
  90. H=Vb<<fC<RUv?qsTKp{KIuJstacwCxKooZ<l[@Ux<>]x]t<<lAfT<>dX=UcdBUT<Eb=ckPRwwg\KSY\
  91. {Oxxs\HCmB[<yYr?xOCdHZLAp@BUT<Eb=c^f<F]\O^cs<cJgKPRwwg\KSY\{@mv?CkPRwwg\B@=]bTd
  92. f\>dT<<=tnUZJV?xoJF[X>XvhyMWkjj<TLBCJF[X>XvhB<^d\<C{wHezyjqlXHbS_b\{Ho^cs<cJg=\
  93. DnUZJV?xnF<{uz[<_\S_[TcsahncwrwS=lnUZJV?xnFoF[kWiXC<Cux]x]t=cy{mD[yXZ>J=ZIy^[ZR
  94. oF[kWiXC<>J=ZIy^[ZR]x]x=Y=?=[KlygQRYYAt=cy{mD[yXZ>J=ZIy^[ZR<U{[xNC{SClAp@U^_ct^
  95. of>>poNjF[_=[KlygQRYYAt=cy{mD[yXZHAx{?riQUqpSbTdfD<@ulWJfpfUK\S_ct^of>>poNjF[_=
  96. [KlygQRYYAtuzDhv\\iHpg^ctfD>{vY]J<VpmDUz<=JXBofiFbOtAtuzDhv\\iHpg^ct<@ulWJfpfUK
  97. \S\DdSyfOPntTTlSkzcTO\BiHNB[\<Oc=hvgNe`z=Z{vY]J<VpmDUzFcv`ndQEHnJ[fA{V`qHjBBHAw
  98. {er@t=gO@]cv][reIOG]]_=ZI=KF\<QNf<=Jf[fOF]P`oDuzdSyfOPntTTlSfcv`ndQEHnJ[^{t=d<?
  99. zI=KF\<QNf<=Jf[fOF]P`oDuzI=KF\<QNf<=J<dSzFAtkz<V<<{_LOnd<APf\<O^{t=d<?zFOjnez<d
  100. SzFAtkz<V<<{\FA{^]Zoz{Dp@teJwFct>][tdS^`whf[^DS_qlkzoz{Dp@teJwFcwKwx_LO_cwqA\FA
  101. t^AtyXG{h{knI=JD]ZKS>{v<ApteteJJ[kPR<dS^DS_qlkzJ[kPR<dS^ZHbSh{d<SO^c^`tuzyMT>]Z
  102. \=YJFZFOvBoF[^DS^ZHbSh{d<SO^c^`tc_EawKt=<_\S_cz]hnct^Atc_EawKz]hnct^Av<Uz\=X<LD
  103. tAtu{dWHezD]Z<LDtAtuz?=ZEv<Uz\=X<LDtAtuz\B[d<S?cz]\lS^Z\B[d<S<lS^Z<=J<Lu{dTHAtc
  104. _cz]kv<=J<Lu{dT<@t=FAt{d<@t=Kvf[fAt{f]Z?LOfcv]ZFctkzI=Jf[_LO\FAtkzI=JG{^`t>]ZG{
  105. \FAwKteJ<dS^`t^AwKteJozJ[^DSh{^DSd<S?ct^AtuzEv<Aluz\=YdTcd<S>Z<R]^[dV<R]\@D=D\