diff options
Diffstat (limited to 'info/lshort/polish/src/graphic.tex')
-rw-r--r-- | info/lshort/polish/src/graphic.tex | 716 |
1 files changed, 0 insertions, 716 deletions
diff --git a/info/lshort/polish/src/graphic.tex b/info/lshort/polish/src/graphic.tex deleted file mode 100644 index a5f21f1a6a..0000000000 --- a/info/lshort/polish/src/graphic.tex +++ /dev/null @@ -1,716 +0,0 @@ -% -- translate-file=il2-pl -- -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\setcounter{chapter}{4} - -\chapter{Tworzenie grafiki matematycznej} -\label{chap:graphics} - -\begin{intro} - Większość ludzi używa {\LaTeX}a do składania tekstów. Ponieważ jednak - podejście strukturalno-logiczne do tworzenia dokumentów jest tak - wygodne, {\LaTeX} oferuje pewną -- fakt, że obarczoną ograniczeniami - -- możliwość generowania grafiki z~opisów tekstowych w~pliku - źródłowym. Co więcej, powstało sporo rozszerzeń {\LaTeX}a - przełamujących wspomniane ograniczenia. W~tym rozdziale dowiesz się - o~kilku z~tych rozszerzeń. -\end{intro} - -\section{Przegląd} - -Otoczenie \ei{picture} pozwala programować rysunki bezpośrednio -w~{\LaTeX}u. Szczegółowy jego opis można znaleźć w~\manual. Metoda ta ma -jednak ograniczenia, które wynikają z~tego, że zarówno nachylenia odcinków, -jak i~średnice okręgów można wybierać jedynie spośród niewielkiej -liczby wartości. Z~drugiej strony w~wersji \LaTeXe{} można w~otoczeniu -\ei{picture} używać polecenia \ci{qbezier}, gdzie ,,\texttt{q}'' oznacza -drugiego stopnia \przypang{quadratic}. Wiele często używanych krzywych, -jak: okręgi, elipsy albo krzywe łańcuchowe można -- niekiedy z~odrobiną -wysiłku matematycznego -- zadowalająco przybliżać krzywymi -B\'eziera\footnote{W~ciekawym artykule \cite{jacko-bezier} - B.L.~Jackowski\index{Jackowski Bogusław} zwraca uwagę, że krzywe - B\'eziera są krzywymi giętymi stopnia trzeciego, nie zaś -- jak - sugeruje nazewnictwo {\LaTeX}owe -- stopnia drugiego.}. Jeśli na -dodatek do generowania {\LaTeX}owych bloków \ci{qbezier} użyje się języka -programowania, na przykład Javy, to otoczenie \ei{picture} ujawni -całkiem pokaźną moc. - -Chociaż programowanie rysunków w~{\LaTeX}u wiąże się z~ograniczeniami -i~jest niekiedy nużące, to jednak są powody, by z~tej możliwości -korzystać. Dokumenty wytworzone w~ten sposób są ,,małe'' -- w~sensie -liczby bajtów zajmowanych przez wynikowe pliki \acro{PDF} -lub \acro{DVI} -- a~na -dodatek nie trzeba do nich wczytywać dodatkowych plików graficznych. - -Pakiety takie jak: \pai{epic} i \pai{eepic} (opisane na przykład -w~\companion) bądź \pai{pstricks} pomagają pokonywać ograniczenia -krępujące oryginalne otoczenie \ei{picture} i~znacznie rozszerzają -graficzną moc {\LaTeX}a. - -O~ile pierwsze dwa z~tych pakietów jedynie rozszerzają otoczenie -\ei{picture}, to pakiet \pai{pstricks} zawiera własne otoczenie -rysujące -- \ei{pspicture}. Moc pakietu \pai{pstricks} bierze się -z~tego, że istotnie wykorzystuje on możliwości {\PSi}u. - -% zmiany głównie z powodu niewypełnienia strony:-) -Na dodatek napisano wiele pakietów realizujących konkretne cele. Jednym -z~nich jest \texorpdfstring{\Xy}{Xy}-pic, opisany na końcu tego -rozdziału. Znaczną liczbę tych pakietów opisano w~\graphicscompanion{} -(nie należy mylić z~\companion). - -Spośród narzędzi graficznych związanych z~{\LaTeX}em największe chyba -możliwości posiada {\MP}, -autorstwa Johna D.~Hobby\index{Hobby John D.}, będący wariantem -programu {\MF}, -którego autorem jest z~kolei Donald E.~Knuth\index{Knuth Donald E.}. -{\MP} jest wyposażony w~solidny -i~matematycznie wyrafinowany język programowania {\MF}a. -Inaczej jednak niż {\MF}, który generuje mapy bitowe, -{\MP} generuje pliki {\PSi}owe, które można importować -do~{\LaTeX}a. Za wprowadzenie może posłużyć \hobby, -a~za podręcznik -- \cite{ursoswald}. Dostępne jest także -wprowadzenie do programu {\MP} w~języku -polskim~\cite{metapost}\footnote{% -Nie ma co ukrywać, że posługiwanie się {\MP}em wymaga posiadania -przynajmniej minimum umiejętności programistycznych. Dla użytkowników -którzy nie programują przydatny może być program MetaGraf, który -jest okienkową nakładką do programu {\MP}, -por.~\urlMetaGraf.}. - -%Obszerną dyskusję podejścia {\LaTeX}a i~\TeX{}a do grafiki (oraz fontów) -Obszerne omówienie zagadnień związanych -z~wykorzystaniem grafiki (oraz fontów) -w~{\LaTeX}u i~\TeX{}u można znaleźć w~\hoenig. - -\section{Otoczenie \texttt{picture}} - -\secby{Urs Oswald}{osurs@bluewin.ch} - -\subsection{Podstawowe polecenia} - -Otoczenie \ei{picture}\footnote{Otoczenie - \ei{picture} działa w~standardowym {\LaTeXe}; nie trzeba ładować - żadnych dodatkowych pakietów.} można tworzyć poleceniem: -\begin{command} -\cmd{begin}\verb|{picture}(|$x,y$\verb|)|\ldots\cmd{end}\verb|{picture}| -\end{command} -\noindent lub -\begin{command} -\cmd{begin}\verb|{picture}(|$x,y$\verb|)(|$x_0,y_0$\verb|)|\ldots\cmd{end}\verb|{picture}| -\end{command} -Liczby $x,\,y,\,x_0,\,y_0$ odnoszą się do wielkości \ci{unitlength}, -którą można zmieniać w~dowolnym momencie -(jednak nie wewnątrz otoczenia \ei{picture}) poleceniem takim jak: -\begin{command} -\ci{setlength}\verb|{|\ci{unitlength}\verb|}{1.2cm}| -\end{command} -Wartością domyślną \ci{unitlength} jest \texttt{1pt}. Pierwsza para, -$(x,y)$, to wymiary rezerwowanego wewnątrz dokumentu prostokątnego -obszaru na rysunek. Opcjonalna druga para, $(x_0,y_0)$, to współrzędne -przypisane dolnemu lewemu narożnikowi zarezerwowanego prostokąta. - -Większość poleceń rysujących ma jedną z~dwóch postaci: -\begin{command} -\ci{put}\verb|(|$x,y$\verb|){|\emph{object}\verb|}| -\end{command} -\noindent lub -\begin{command} -\ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{object}\verb|}|\end{command} -\noindent Wyjątkiem są krzywe B\'eziera, gdyż rysuje się je poleceniem: -\begin{command} -\ci{qbezier}\verb|(|$x_1,y_1$\verb|)(|$x_2,y_2$\verb|)(|$x_3,y_3$\verb|)| -\end{command} - -\subsection{Odcinki} - -\begin{example} -\setlength{\unitlength}{5cm} -\begin{picture}(1,1) - \put(0,0){\line(0,1){1}} - \put(0,0){\line(1,0){1}} - \put(0,0){\line(1,1){1}} - \put(0,0){\line(1,2){.5}} - \put(0,0){\line(1,3){.3333}} - \put(0,0){\line(1,4){.25}} - \put(0,0){\line(1,5){.2}} - \put(0,0){\line(1,6){.1667}} - \put(0,0){\line(2,1){1}} - \put(0,0){\line(2,3){.6667}} - \put(0,0){\line(2,5){.4}} - \put(0,0){\line(3,1){1}} - \put(0,0){\line(3,2){1}} - \put(0,0){\line(3,4){.75}} - \put(0,0){\line(3,5){.6}} - \put(0,0){\line(4,1){1}} - \put(0,0){\line(4,3){1}} - \put(0,0){\line(4,5){.8}} - \put(0,0){\line(5,1){1}} - \put(0,0){\line(5,2){1}} - \put(0,0){\line(5,3){1}} - \put(0,0){\line(5,4){1}} - \put(0,0){\line(5,6){.8333}} - \put(0,0){\line(6,1){1}} - \put(0,0){\line(6,5){1}} -\end{picture} -\end{example} - -Do rysowania odcinków służy polecenie: -\begin{command} -\ci{put}\verb|(|$x,y$\verb|){|\ci{line}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}| -\end{command} -\noindent -Ma ono ma dwa argumenty: wektor kierunku i~długość. - -Jako składników wektora kierunku można użyć jedynie liczb całkowitych: -\[ - -6,\,-5,\,\ldots,\,5,\,6, -\] -Muszą one na dodatek być liczbami względnie pierwszymi (jedynym ich wspólnym -dzielnikiem może być 1). Powyższy rysunek ilustruje wszystkie możliwe -wartości nachylenia w~pierwszej ćwiartce płaszczyzny. Długość jest -podawana w~jednostkach \ci{unitlength}. Argument długości oznacza -współrzędną pionową w~wypadku odcinka pionowego, zaś współrzędną -poziomą we wszystkich pozostałych przypadkach. - -\subsection{Strzałki} - -\begin{example} -\setlength{\unitlength}{0.75mm} -\begin{picture}(60,40) - \put(30,20){\vector(1,0){30}} - \put(30,20){\vector(4,1){20}} - \put(30,20){\vector(3,1){25}} - \put(30,20){\vector(2,1){30}} - \put(30,20){\vector(1,2){10}} - \thicklines - \put(30,20){\vector(-4,1){30}} - \put(30,20){\vector(-1,4){5}} - \thinlines - \put(30,20){\vector(-1,-1){5}} - \put(30,20){\vector(-1,-4){5}} -\end{picture} -\end{example} - -Strzałki rysuje się poleceniem: -\begin{command} -\ci{put}\verb|(|$x,y$\verb|){|\ci{vector}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}| -\end{command} -\noindent W~wypadku strzałek na składniki wektora kierunku nałożone są -jeszcze większe ograniczenia niż dla odcinków, bo jedynymi -dopuszczalnymi liczbami całkowitymi są: -\[ - -4,\,-3,\,\ldots,\,3,\,4. -\] -Wartości składników i~tu muszą być liczbami względnie pierwszymi -(jedynym wspólnym dzielnikiem może być 1). Zauważ efekt działania polecenia -\ci{thicklines} na dwie strzałki skierowane w~stronę lewego górnego -narożnika oraz \ci{thinlines} na strzałki w~stronę narożnika prawego górnego. - -\subsection{Okręgi} - -\begin{example} -\setlength{\unitlength}{1mm} -\begin{picture}(60, 40) - \put(20,30){\circle{1}} - \put(20,30){\circle{2}} - \put(20,30){\circle{4}} - \put(20,30){\circle{8}} - \put(20,30){\circle{16}} - \put(20,30){\circle{32}} - - \put(40,30){\circle{1}} - \put(40,30){\circle{2}} - \put(40,30){\circle{3}} - \put(40,30){\circle{4}} - \put(40,30){\circle{5}} - \put(40,30){\circle{6}} - \put(40,30){\circle{7}} - \put(40,30){\circle{8}} - \put(40,30){\circle{9}} - \put(40,30){\circle{10}} - \put(40,30){\circle{11}} - \put(40,30){\circle{12}} - \put(40,30){\circle{13}} - \put(40,30){\circle{14}} - - \put(15,10){\circle*{1}} - \put(20,10){\circle*{2}} - \put(25,10){\circle*{3}} - \put(30,10){\circle*{4}} - \put(35,10){\circle*{5}} -\end{picture} -\end{example} - -Polecenie: -\begin{command} - \ci{put}\verb|(|$x,y$\verb|){|\ci{circle}\verb|{|\emph{diam}\verb|}}| -\end{command} -\noindent rysuje okrąg o~środku $(x,y)$ i~średnicy (nie promieniu) -równym \emph{diam}. Otoczenie \ei{picture} dopuszcza średnice co najwyżej -rzędu 14\,mm, na dodatek nie wszystkie długości średnic są -dozwolone. Polecenie \ci{circle*} generuje koła (wypełnione okręgi). - -Podobnie jak w~wypadku odcinków, można się uciec do dodatkowych pakietów, -takich jak \pai{eepic} bądź \pai{pstricks}. Obszerny opis tych -pakietów można znaleźć w~\graphicscompanion. - -Otoczenie \ei{picture} oferuje jeszcze jedną opcję. Jeśli nie boisz się -wykonania niezbędnych obliczeń (być może nawet za pomocą programu), to -okręgi oraz elipsy możesz złatać z~krzywych B\'eziera drugiego stopnia. -Przykłady oraz źródłowe pliki w~Javie można znaleźć w~\graphicsinlatex. - -\subsection{Tekst i~wzory} - -\begin{example} -\setlength{\unitlength}{0.8cm} -\begin{picture}(6,5) - \thicklines - \put(1,0.5){\line(2,1){3}} - \put(4,2){\line(-2,1){2}} - \put(2,3){\line(-2,-5){1}} - \put(0.65,0.3){$A$} - \put(4.05,1.9){$B$} - \put(1.65,2.95){$C$} - \put(3.1,2.5){$a$} - \put(1.3,1.7){$b$} - \put(2.5,1.05){$c$} - \put(0.3,4){$F= - \sqrt{s(s-a)(s-b)(s-c)}$} - \put(3.5,0.4){$\displaystyle - s:=\frac{a+b+c}{2}$} -\end{picture} -\end{example} -Jak widać w~powyższym przykładzie, tekst oraz wzory można łatwo -wprowadzać do otoczenia \ei{picture} poleceniem \ci{put}. - -\subsection{Polecenia \texorpdfstring{\cmd{multiput} - i \cmd{linethickness}}{multiput i linethickness}} - -\begin{example} -\setlength{\unitlength}{2mm} -\begin{picture}(30,20) - \linethickness{0.075mm} - \multiput(0,0)(1,0){26}% - {\line(0,1){20}} - \multiput(0,0)(0,1){21}% - {\line(1,0){25}} - \linethickness{0.15mm} - \multiput(0,0)(5,0){6}% - {\line(0,1){20}} - \multiput(0,0)(0,5){5}% - {\line(1,0){25}} - \linethickness{0.3mm} - \multiput(5,0)(10,0){2}% - {\line(0,1){20}} - \multiput(0,5)(0,10){2}% - {\line(1,0){25}} -\end{picture} -\end{example} -Polecenie: -\begin{command} - \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{object}\verb|}| -\end{command} -\noindent ma cztery argumenty: punkt początkowy, wektor przesunięcia -z~jednego obiektu do kolejnego, liczbę obiektów oraz rysowany obiekt. -Instrukcja \ci{linethickness} odnosi się do odcinków poziomych oraz -pionowych, jednakże nie do odcinków ukośnych ani nie do okręgów. -Stosuje się ona jednak również do krzywych B\'eziera drugiego stopnia. - -\subsection{Owale} - -\begingroup -\typeout{*** Coś jest trochę za duże w tym Przykładzie ***} -\begin{example} -\setlength{\unitlength}{0.75cm} -\begin{picture}(6,4) - \linethickness{0.075mm} - \multiput(0,0)(1,0){7}% - {\line(0,1){4}} - \multiput(0,0)(0,1){5}% - {\line(1,0){6}} - \thicklines - \put(2,3){\oval(3,1.8)} - \thinlines - \put(3,2){\oval(3,1.8)} - \thicklines - \put(2,1){\oval(3,1.8)[tl]} - \put(4,1){\oval(3,1.8)[b]} - \put(4,3){\oval(3,1.8)[r]} - \put(3,1.5){\oval(1.8,0.4)} -\end{picture} -\end{example} -\endgroup - %% -Polecenie: - %% -\begin{command} - \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)}| -\end{command} -\noindent jak też: -\begin{command} - \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)[|\emph{pozycja}\verb|]}| -\end{command} -\noindent generuje owal o~środku $(x,y)$, szerokości -$w$ i~wysokości $h$. Opcjonalne argumenty \emph{pozycji\/}: -\texttt{b}, \texttt{t}, \texttt{l} i~\texttt{r} oznaczają odpowiednio: -,,top'' (góra), ,,bottom'' (dół), ,,left'' (lewo) i~,,right'' (prawo). -Jak pokazuje przykład, można także używać ich kombinacji. - -Grubością linii można sterować na dwa sposoby, z~jednej strony poleceniem: -\begin{command} -\ci{linethickness}\verb|{|\emph{length}\verb|}| -\end{command} -\noindent -z~drugiej -- za pomocą \ci{thinlines} i~\ci{thicklines}. O~ile pierwszy -ze sposobów odnosi się jedynie do linii poziomych oraz pionowych, -a~także do krzywych B\'eziera drugiego stopnia, o~tyle \ci{thinlines} -i~\ci{thicklines} stosują się do odcinków ukośnych, jak też do okręgów -i~owali. - -\subsection{Wielokrotne użycie pudełek z~rysunkami} - -\begin{example} -\setlength{\unitlength}{0.5mm} -\begin{picture}(120,168) -\newsavebox{\foldera} -\savebox{\foldera} - (40,32)[bl]{% definition - \multiput(0,0)(0,28){2} - {\line(1,0){40}} - \multiput(0,0)(40,0){2} - {\line(0,1){28}} - \put(1,28){\oval(2,2)[tl]} - \put(1,29){\line(1,0){5}} - \put(9,29){\oval(6,6)[tl]} - \put(9,32){\line(1,0){8}} - \put(17,29){\oval(6,6)[tr]} - \put(20,29){\line(1,0){19}} - \put(39,28){\oval(2,2)[tr]} -} -\newsavebox{\folderb} -\savebox{\folderb} - (40,32)[l]{% definition - \put(0,14){\line(1,0){8}} - \put(8,0){\usebox{\foldera}} -} -\put(34,26){\line(0,1){102}} -\put(14,128){\usebox{\foldera}} -\multiput(34,86)(0,-37){3} - {\usebox{\folderb}} -\end{picture} -\end{example} -Pudełko rysunku można \emph{zadeklarować} instrukcją: -\begin{command} - \ci{newsavebox}\verb|{|\emph{nazwa}\verb|}| -\end{command} -\noindent następnie \emph{zachować} poleceniem: -\begin{command} - \ci{savebox}\verb|{|\emph{nazwa}\verb|}(|\emph{szerokość,wysokość}\verb|)[|\emph{pozycja}\verb|]{|\emph{treść}\verb|}| -\end{command} -\noindent i~ostatecznie dowolnie często \emph{rysować}, wywołując: -\begin{command} - \ci{put}\verb|(|$x,y$\verb|)|\ci{usebox}\verb|{|\emph{nazwa}\verb|}| -\end{command} - -Opcjonalny parametr \emph{pozycja\/} definiuje ,,punkt zaczepienia'' -zachowywanego pudełka (savebox). W~przykładzie nadano mu wartość - \texttt{bl}, co oznacza umieszczenie punktu zaczepienia w~dolnym lewym -narożniku pudełka. Pozycje można też oznaczać literami -\texttt{t} (góra) i~\texttt{r} (prawo). - -Argument \emph{nazwa\/} odnosi się do {\LaTeX}owego magazynu poleceń -i~dlatego ma naturę instrukcji (co w~powyższym przykładzie objawia się -choćby użyciem znaków '\verb+\+'). Rysunki przechowywane w~pudełkach -można zagnieżdżać. W~powyższym przykładzie wewnątrz definicji -\ci{folderb} użyto \ci{foldera}. - -Trzeba było użyć polecenia \ci{oval}, ponieważ instrukcja \ci{line} -nie działa, gdy długość odcinka wynosi mniej niż około 3\,mm. - -\subsection{Krzywe B\'eziera drugiego stopnia} - -\begin{example} -\setlength{\unitlength}{0.8cm} -\begin{picture}(6,4) - \linethickness{0.075mm} - \multiput(0,0)(1,0){7} - {\line(0,1){4}} - \multiput(0,0)(0,1){5} - {\line(1,0){6}} - \thicklines - \put(0.5,0.5){\line(1,5){0.5}} - \put(1,3){\line(4,1){2}} - \qbezier(0.5,0.5)(1,3)(3,3.5) - \thinlines - \put(2.5,2){\line(2,-1){3}} - \put(5.5,0.5){\line(-1,5){0.5}} - \linethickness{1mm} - \qbezier(2.5,2)(5.5,0.5)(5,3) - \thinlines - \qbezier(4,2)(4,3)(3,3) - \qbezier(3,3)(2,3)(2,2) - \qbezier(2,2)(2,1)(3,1) - \qbezier(3,1)(4,1)(4,2) -\end{picture} -\end{example} - %% -\noindent -Jak widać w~przykładzie, podzielenie okręgu na cztery krzywe B\'eziera -drugiego stopnia nie daje zadowalającego efektu; lepsze przybliżenie -dałoby osiem. Przykład ponownie ilustruje wpływ instrukcji -\ci{linethickness} na linie poziome i~pionowe oraz poleceń -\ci{thinlines} i~\ci{thicklines} na odcinki pochyłe. Pokazuje on -również, że oba te rodzaje poleceń oddziałują na krzywe B\'eziera i~że -kolejne użycie któregokolwiek z~nich przesłania poprzednie. - -Niech symbole $P_1=(x_1,\,y_1),\,P_2=(x_2,\,y_2)$ oznaczają punkty -końcowe, zaś $m_1,\,m_2$ -- odpowiednie nachylenia krzywej B\'eziera -drugiego stopnia. Pośredni punkt kontrolny $S=(x,\,y)$ jest zatem -opisany równaniami: -\begin{equation} \label{zwischenpunkt} - \left\{ - \begin{array}{rcl} - x & = & \displaystyle \frac{m_2 x_2-m_1x_1-(y_2-y_1)}{m_2-m_1}, \smallskip\\ - y & = & y_i+m_i(x-x_i)\qquad (i=1,\,2). - \end{array} - \right. -\end{equation} -\noindent W~\graphicsinlatex\ można znaleźć program w~Javie, który -generuje odpowiednią linię polecenia \ci{qbezier}. - -\subsection{Krzywe łańcuchowe} - -\begin{example} -\setlength{\unitlength}{1cm} -\begin{picture}(4.3,3.6)(-2.5,-0.25) -\put(-2,0){\vector(1,0){4.4}} -\put(2.45,-.05){$x$} -\put(0,0){\vector(0,1){3.2}} -\put(0,3.35){\makebox(0,0){$y$}} -\qbezier(0.0,0.0)(1.2384,0.0) - (2.0,2.7622) -\qbezier(0.0,0.0)(-1.2384,0.0) - (-2.0,2.7622) -\linethickness{.075mm} -\multiput(-2,0)(1,0){5} - {\line(0,1){3}} -\multiput(-2,0)(0,1){4} - {\line(1,0){4}} -\linethickness{.2mm} -\put( .3,.12763){\line(1,0){.4}} -\put(.5,-.07237){\line(0,1){.4}} -\put(-.7,.12763){\line(1,0){.4}} -\put(-.5,-.07237){\line(0,1){.4}} -\put(.8,.54308){\line(1,0){.4}} -\put(1,.34308){\line(0,1){.4}} -\put(-1.2,.54308){\line(1,0){.4}} -\put(-1,.34308){\line(0,1){.4}} -\put(1.3,1.35241){\line(1,0){.4}} -\put(1.5,1.15241){\line(0,1){.4}} -\put(-1.7,1.35241){\line(1,0){.4}} -\put(-1.5,1.15241){\line(0,1){.4}} -\put(-2.5,-0.25){\circle*{0.2}} -\end{picture} -\end{example} -\noindent -Każdą z~symetrycznych połówek wykresu cosinusa hiperbolicznego - $y=\cosh x -1$ przybliżono na~rysunku krzywą -B\'eziera. Prawa połówka krzywej kończy się w~punkcie \((2,\,2.7622)\), -w~którym nachylenie ma wartość \(m=3.6269\). Używając ponownie równania -(\ref{zwischenpunkt}), możemy wyliczyć pośrednie punkty kontrolne. -Okazuje się, że są to: $(1.2384,\,0)$ i~$(-1.2384,\,0)$. -Krzyżykami została zaznaczona ,,prawdziwa'' krzywa. Błąd jest -ledwie zauważalny, bo wynosi mniej niż jeden procent. - -Ten przykład ilustruje też użycie opcjonalnego argumentu otoczenia -\verb|\begin{picture}|. Rysunek zdefiniowano w~terminach - wygodnych współrzędnych ,,matematycznych", podczas gdy poleceniem: -\begin{command} - \cmd{begin}\verb|{picture}(4.3,3.6)(-2.5,-0.25)| -\end{command} -\noindent jego lewemu dolnemu narożnikowi (oznaczonemu czarnym -kółeczkiem) przypisano współrzędne $(-2.5,-0.25)$. - -\subsection{Prędkość w~Szczególnej Teorii Względności} - -\begin{example} -\setlength{\unitlength}{0.8cm} -\begin{picture}(6,4)(-3,-2) - \put(-2.5,0){\vector(1,0){5}} - \put(2.7,-0.1){$\chi$} - \put(0,-1.5){\vector(0,1){3}} - \multiput(-2.5,1)(0.4,0){13} - {\line(1,0){0.2}} - \multiput(-2.5,-1)(0.4,0){13} - {\line(1,0){0.2}} - \put(0.2,1.4) - {$\beta=v/c=\tanh\chi$} - \qbezier(0,0)(0.8853,0.8853) - (2,0.9640) - \qbezier(0,0)(-0.8853,-0.8853) - (-2,-0.9640) - \put(-3,-2){\circle*{0.2}} -\end{picture} -\end{example} -Punkty kontrolne dwóch krzywych B\'eziera wyliczono ze wzorów -(\ref{zwischenpunkt}). Gałąź dodatnia jest określona wartościami -$P_1=(0,\,0),\,m_1=1$ oraz $P_2=(2,\,\tanh 2),\,m_2=1/\cosh^2 2$. -I~znowu rysunek wyrażono w~wygodnych matematycznie -współrzędnych, a~lewemu dolnemu narożnikowi przypisano współrzędne -$(-3,-2)$ (czarne kółeczko). - -\section{\texorpdfstring{\Xy}{Xy}-pic} -\secby{Alberto Manuel Brand\~ao Sim\~oes}{albie@alfarrabio.di.uminho.pt} -Pakiet \Xy-pic służy do rysowania grafów. Aby uzyskać dostęp do jego -funkcji, umieszczamy w~preambule dokumentu wiersz: - %% -\begin{command} -\verb|\usepackage[|\emph{opcje}\verb|]{xy}| -\end{command} - %% -\noindent -Parametr \emph{opcje} jest listą funkcji pakietu \Xy-pic, które mają -zostać załadowane. Opcje te przydają się między innymi do szukania błędów -w~pakiecie. Zaleca się przekazywać opcję \popti{all}, -nakazującą {\LaTeX}owi załadować wszystkie polecenia pakietu. -\looseness-3 - -Graf rysuje się w~\Xy-pic na płótnie o~strukturze macierzy, -a~każdy element grafu jest umieszczony w~komórce tej macierzy: -\begin{example} -\begin{displaymath} -\xymatrix{A & B \\ -C & D } -\end{displaymath} -\end{example} -\noindent -Polecenia \ci{xymatrix} można użyć jedynie w~trybie matematycznym. Powyżej -zadano dwa wiersze i~dwie kolumny. Aby przekształcić tę macierz -w~graf, posługujemy się dodającym strzałki -poleceniem \ci{ar}\footnote{Pakiety \Xy-pic oraz \pai{polski} -są w~konflikcie, bo oba -definiują polecenie~\ci{ar}. -Jeżeli polecenie \ci{ar} ma działać tak, jak -zdefiniowano to w~pakiecie \Xy-pic, to trzeba \pai{xy} -dołączyć po pakiecie \pai{polski}. -Oczywiście nie ma wtedy dostępu do polecenia \ci{ar} -z~pakietu \pai{polski}.}: -\begin{example} -\begin{displaymath} -\xymatrix{ A \ar[r] & B \ar[d] \\ - D \ar[u] & C \ar[l] } -\end{displaymath} -\end{example} -\noindent -Polecenie \ci{ar} umieszczamy w~komórce, w~której strzałka ma -się zaczynać. Argument oznacza kierunek strzałki (\texttt{u} -- góra, -\texttt{d} -- dół, \texttt{r} -- prawo i~\texttt{l} -- lewo): -\begin{example} -\begin{displaymath} -\xymatrix{ - A \ar[d] \ar[dr] \ar[r] & B \\ - D & C } -\end{displaymath} -\end{example} -Aby uzyskać przekątne, używamy po prostu więcej niż jednego kierunku. -Powtarzając kierunek, wydłużamy w~istocie strzałkę: -\begin{example} -\begin{displaymath} -\xymatrix{ - A \ar[d] \ar[dr] \ar[drr] & & \\ - B & C & D } -\end{displaymath} -\end{example} -Uzupełniając strzałki o~etykiety, możemy uzyskać jeszcze ciekawsze grafy. -Używamy do tego zwyczajnych operatorów indeksów górnych i~dolnych: -\begin{example} -\begin{displaymath} -\xymatrix{ - A \ar[r]^f \ar[d]_g & - B \ar[d]^{g'} \\ - D \ar[r]_{f'} & C } -\end{displaymath} -\end{example} -Jak widać, operatorów tych używa się tak samo jak w~trybie matematycznym. -Jedyną różnicą jest to, że indeks górny oznacza \emph{nad}, -zaś dolny -- \emph{pod} strzałką. Istnieje jeszcze trzeci -operator -- pionowej kreski \verb+|+. Umieszcza -on tekst \emph{na} strzałce: -\begin{example} -\begin{displaymath} -\xymatrix{ - A \ar[r]|f \ar[d]|g & - B \ar[d]|{g'} \\ - D \ar[r]|{f'} & C } -\end{displaymath} -\end{example} -Aby narysować strzałkę z~dziurką w~środku, możemy użyć -polecenia \verb!\ar[...]|\hole!. - -W~niektórych sytuacjach trzeba używać różnych typów strzałek. -Można je w~tym celu oznaczać różnymi etykietami bądź -nadawać im różny wygląd: - -\begingroup -%% zmniejsz odstęp między wierszami do 1,5pc (domyśnie 2,0pc) -%% w macierzy \xymatrix, bo nie wchodzi na stronę: -\xymatrixrowsep{1.5pc} -%\shorthandoff{"} %% było poniżej \begin{example}, ale po co ? --tp -- -\begin{example} -\begin{displaymath} -\xymatrix{ -\bullet\ar@{->}[rr] && \bullet\\ -\bullet\ar@{.<}[rr] && \bullet\\ -\bullet\ar@{~)}[rr] && \bullet\\ -\bullet\ar@{=(}[rr] && \bullet\\ -\bullet\ar@{~/}[rr] && \bullet\\ -\bullet\ar@{^{(}->}[rr] && - \bullet\\ -\bullet\ar@2{->}[rr] && \bullet\\ -\bullet\ar@3{->}[rr] && \bullet\\ -\bullet\ar@{=+}[rr] && \bullet -} -\end{displaymath} -\end{example} -%\shorthandon{"} %% było nad \end{example} ale nie wiadomo po co? --tp-- -\endgroup - -Zauważ różnicę między następującymi dwoma grafami: - -\begin{example} -\begin{displaymath} -\xymatrix{ - \bullet \ar[r] - \ar@{.>}[r] & - \bullet -} -\end{displaymath} -\end{example} - -\begin{example} -\begin{displaymath} -\xymatrix{ - \bullet \ar@/^/[r] - \ar@/_/@{.>}[r] & - \bullet -} -\end{displaymath} -\end{example} - %% - %%\texttt{\meaning\ar} -\noindent Symbole między ukośnikami określają tu sposób rysowania krzywych. - -Pakiet \Xy-pic oferuje wiele metod wpływania na sposób rysowania -krzywych. Więcej na ten temat można przeczytać -w~dokumentacji pakietu~\cite{xy-pic}. - -\endinput - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "lshort2e" -%%% coding: latin-2 -%%% case-fold-search: nil -%%% LocalWords: Jackowski -%%% ispell-local-dictionary: "polish" -%%% End: |