%%HP: T(3)A(R)F(.); @ @ @ NASTAVENI HODNOT PROMENNE PPAR @ void ENVPPAR(List waveform); \<< DUP @ {wave} {wave} SIZE @ lastidx {wave} @ @ @ USEKY DELENI OBOU OS @ Real axetick(Real range); \<< DUP MANT 0. RND 2. - 3. / IF DUP 0. \>= THEN IP 2. SWAP ^ .5 * ELSE DROP .2 END SWAP XPON ALOG * \>> @ \<< \>> lastidx {wave} \-> lastidx axetick \<< @ {wave} @ Mezni hodnoty SORT @ {swav} DUP @ {swav} {swav} lastidx @ lastidx {swav} {swav} GET @ Wmax {swav} SWAP @ {swav} Wmax HEAD @ Wmin Wmax DUP2 @ Wmin Wmax Wmin Wmax - @ Yrange Wmin Wmax 2. @ 2. Yrange Wmin Wmax / @ Yrange Wmin Wmax axetick EVAL @ Ytick Wmin Wmax @ Zaokrouhleni podle useku deleni osy @ Real axelimit(Real tick, Real minmax); \<< OVER / 0.5 + FLOOR * \>> @ \<< \>> Ytick Wmin Wmax \-> ytick axelimit \<< @ Wmin Wmax ytick @ Ytick Wmin Wmax PICK3 @ Wmax Ytick Wmin Wmax axelimit EVAL @ Ymax Wmin Wmax ytick @ Ytick Ymax Wmin Wmax PICK3 @ Wmin Ytick Ymax Wmin Wmax axelimit EVAL @ Ymin Ymax Wmin Wmax ROT @ Wmin Ymin Ymax Wmax OVER @ Ymin Wmin Ymin Ymax Wmax IF < @ 0.|1. Ymin Ymax Wmax THEN @ Ymin Ymax Wmax ytick @ Ytick Ymin Ymax Wmax - @ Ymin Ymax Wmax END UNROT @ Ymax Wmax Ymin SWAP @ Wmax Ymax Ymin OVER @ Ymax Wmax Ymax Ymin IF > @ 0.|1. Ymax Ymin THEN @ Ymax Ymin ytick @ Ytick Ymax Ymin + @ Ymax Ymin END ytick @ Ytick Ymax Ymin \>> @ Nastaveni rozsahu v ose X 1. @ Xmin Ytick Ymax Ymin lastidx @ Xmax Xmin Ytick Ymax Ymin XRNG @ Ytick Ymax Ymin @ Useky deleni os lastidx @ Xrange Ytick Ymax Ymin axetick EVAL @ Xtick Ytick Ymax Ymin \>> SWAP @ Ytick Xtick Ymax Ymin 2. @ 2. Xtick Ytick Ymax Ymin \->LIST @ {atick} Ymax Ymin @ Bod krizeni os PICK3 @ Ymin {atick} Ymax Ymin PICK3 @ Ymax Ymin {atick} Ymax Ymin CASE 0. @ 0. Ymax Ymin {atick} Ymax Ymin < @ 0.|1. Ymin {atick} Ymax Ymin THEN @ Ymin {atick} Ymax Ymin DROP @ {atick} Ymax Ymin OVER @ Ymax {atick} Ymax Ymin END 0. @ 0. Ymin {atick} Ymax Ymin > @ 0.|1. {atick} Ymax Ymin THEN @ {atick} Ymax Ymin PICK3 @ Ymin {atick} Ymax Ymin END 0. @ 0. {atick} Ymax Ymin END @ Yorig {atick} Ymax Ymin 1. @ Xorig Yorig {atick} Ymax Ymin SWAP @ Yorig Xorig {atick} Ymax Ymin R\->C @ (x,y) {atick} Ymax Ymin @ Kompletni nastaveni os SWAP @ {atick} (x,y) Ymax Ymin 2. @ 2. {atick} (x,y) Ymax Ymin \->LIST @ {axes} Ymax Ymin AXES @ Ymax Ymin @ Nastaveni rozsahu v ose Y YRNG \>>