[cstex] Volitelny argument v tvare [(x1, y1)(x2, y2)...(xn, yn)], ako na to?

Jan Sustek Jan.Sustek at seznam.cz
Mon May 2 11:57:19 CEST 2011


Dobry den,

pokud jde o nacitani neznameho poctu volitelnych argumentu, jde to s primitivem \futurelet jednoduse. Dokonce se to da udelat tak, ze nejsou treba ani hranate zavorky. To zjednodusi jak zapisovani uzivatelum, tak programovani toho makra. Nacitani resi nize uvedena makra \dalsiznak, \testuj a \dalsibod. Makro \konecsipky pak s nactenymi udaji neco udela, ve Vasem pripade vykresli tu sipku. Ale to uz nezavisi na tom nacitani a to necham na Vas. :-)

Pekny den preje
Jan Sustek

\newcount\pomocny
\newcount\pocetbodu
\def\sipka#1{\def\prvnibod{#1}%
  \pocetbodu0
  \dalsiznak}
\def\dalsiznak{\futurelet\znak\testuj}
\def\testuj{\ifx\znak(\let\nxt\dalsibod\else\let\nxt\konecsipky\fi\nxt}
\def\dalsibod(#1,#2){\advance\pocetbodu1
  \expandafter\def\csname x\the\pocetbodu\endcsname{#1}%
  \expandafter\def\csname y\the\pocetbodu\endcsname{#2}%
  \dalsiznak}
\def\konecsipky#1{\def\poslednibod{#1}%
  Sipka vychazi z bodu \prvnibod\ do bodu \poslednibod\
  \ifnum\pocetbodu>0
    a prochazi pres body
    \pomocny0
    \loop\ifnum\pomocny<\pocetbodu \advance\pomocny1
      (\csname x\the\pomocny\endcsname,\csname y\the\pomocny\endcsname)
    \repeat
  \fi
  \unskip.}

\begin{document}
\sipka{(10,10)}{(15,15)}
\sipka{(1,1)}(1,2)(1,5)(2,8)(9,3){(11,4)}
\end{document}




> ------------ Původní zpráva ------------
> Od: Tomáš Fábry <fabry.tomas at gmail.com>
> Předmět: [cstex] Volitelny argument v tvare [(x1, y1)(x2, y2)...(xn, yn)], ako
> na to?
> Datum: 01.5.2011 23:10:04
> ----------------------------------------
> Zdravim vas,
> 
> robim sty balicek, ktory pomocou tikz vykresluje zlozitejsie obrazce.
> Potreboval by som vyrobit prikaz v tvare:
> 
> \arrow{u1}[(x1,y1)...(xn,yn)]{u2}
> 
> Prikaz by mal nakreslit sipku od objektu k objektu. Povedzme, ze
> objekty su nejake uzly s textom, konkretne:
> 
> \node (u1) at (xu1,yu1) {text1};
> \node (u2) at {xu2,yu2} {text2};
> 
> Vo volitelnom parametri by malo byt mozne zadat suradnice bodov, cez
> ktore bude sipka prechadzat. Nie je dopredu zname, kolko tychto bodov
> bude zadanych, mozno ziadny a mozno n.
> 
> Mam len malo skusenosti s tvorbou balickou a v tomto pripade absolutne
> nemam predstavu ako taketo nieco dosiahnut. Nasiel by sa niekto, kto
> by mi vedel poradit?
> 
> Velmi pekne dakujem.
> 
> S pozdravom TF
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
> 
> 
> 




More information about the csTeX mailing list