%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setcounter{chapter}{4} \newcommand{\graphicscompanion}{\emph{The \LaTeX{} Graphics Companion}~\cite{graphicscompanion}} \newcommand{\hobby}{\emph{A User's Manual for \MP{}}~\cite{metapost}} \newcommand{\hoenig}{\emph{\TeX{} Unbound}~\cite{unbound}} \newcommand{\graphicsinlatex}{\emph{Graphics in \LaTeXe{}}~\cite{ursoswald}} \chapter{Функцийн график байгуулах} \label{chap:graphics} \begin{intro} Ихэнх хімііс \LaTeX-г текст бэлтгэхэд ашигладаг. Зургийг агууламж, бітцийн холбоогійгээр зурах нь амар хэдий ч \LaTeX\ дээр іінийг хязгаарлагдмал хірээнд тусгай тушаалын тусламжтайгаар зурж болдог. Тіінээс гадна \LaTeX-д, тэдгээр хязгаарлагдмал байдлыг н°х°хійц олон тооны нэмэлт °рг°тг°ліід зохиогдсон байдаг б°г°°д энэ білэгт тэдгээрийн ц°°н хэдтэй танилцана. \end{intro} \section{Тойм} \LaTeX-д зургийг \ei{picture} хірээллийн тусламжтайгаар боловсруулдаг. Энэ талаарх дэлгэрэнгійг \manual\ товхимлоос авч болно. Нэг талаар, тойргийн радиусын утгыг т°дийгій шугамын налууг нарийвчлан тогтооход нэлээд т°в°гтэй хэдий ч н°г°° талаар, \LaTeXe-ийн \ei{picture} хірээлэлд \ci{qbezier} тушаал (``\texttt{q}'' гэж ``квадрат'' гэсэн утгатай) агуулагдах б°г°°д тэрхіі Безьегийн квадрат мурийг ашиглан, хэдийгээр энэ нь математик тооцоо шаардах боловч тойрог, эллипс болон гинжин шугам гэх мэтийн мурийнуудыг илэрхийлж болдог. Тіінчлэн Java мэтийн программчлалын хэліідийг, \LaTeX\ оролтын файлаас \ci{qbezier} функцийг дірслэхэд ашиглаж болдгоос \ei{picture} хірээлэл хэчнээн хічирхэг болох нь харагдана. Зургийг \LaTeX\ дээр программчлах явдал нь нэлээд хязгаарлагдмал т°дийгій ажиллагаа их шаарддаг ч іігээр бэлтгэсэн баримт нь байтаар хэмжигдэхійц ``багахан'' хэмжээ эзэлдэг, нэмэлт зургийн файл оруулах шаардлагагій байдаг зэрэг ашиглахад хіргэдэг давуу тал ц°°нгій ажээ. \pai{epic}, \pai{eepic} (\companion-д дурдсанчлан) ба \pai{pstricks} гэх багцууд нь \ei{picture} хірээллийн хязгаарлагдмал байдлыг халж \LaTeX-ийн зурах чадварыг сайжруулахад тусална. Эхний хојр багц нь \ei{picture} хірээлэлд тулгуурлан тііний чадавхыг бэхжіілэхэд зориулагдсан бол \pai{pstricks} багц нь °°рийн \ei{pspicture} хірээлэлд зориулагджээ. \pai{pstricks} багцын чадавх нь \PSi{}-ийн боломжийг ашиглахад тулгуурладаг. М°н т°р°л бірийн зориулалттайгаар олон тооны багцууд зохиогдсон байдгаас тэдний нэг болох \texorpdfstring{\Xy}{Xy}-pic багцын талаар энэ білгийн т°гсг°лд тайлбарлах болно. Эдгээр багцуудыг \graphicscompanion{} (\companion\ биш) товхимолд нарийвчлан тайлбарласан байдаг. \LaTeX-ийн хамгийн хічирхэг зургийн хэрэгсліідийн нэг нь Доналд Кнутийн \MF-ийн ижил болох \MP{} б°г°°д энэ нь \MF-ийн математик боловсруулалт біхий программчлалын хэл, тііний чадавхад тулгуурласан байдаг, тэрээр цэгэн (bitmap) бус \LaTeX-д ашиглаж болох encapsulated \PSi{} зураг іісгэдгээрээ \MF-оос ялгаатай. Тііний танилцуулгыг \hobby, ашиглах зааврыг \cite{ursoswald} товхимлуудаас тус тус ізнэ іі. \hoenig{} товхимолд \LaTeX{} болон \TeX{} дээр зураг (фонт) зурах аргачлалыг дэлгэрэнгій тайлбарласан байдаг. \section{\texttt{picture} хірээлэл} \secby{Урс Освальд (Urs Oswald)}{osurs@bluewin.ch} \subsection{“ндсэн тушаалууд} Дараах хојр тушаалын аль нэгээр \ei{picture} хірээллийг\footnote{picture хірээлэл нь нэмэлт багц ашиглахгійгээр стандарт \LaTeXe{} багцын хайрцаглах горимоор ажилладаг.} илэрхийлнэ \begin{lscommand} \ci{begin}\verb|{picture}(|$x,y$\verb|)|\ldots\ci{end}\verb|{picture}| \end{lscommand} \noindent буюу \begin{lscommand} \ci{begin}\verb|{picture}(|$x,y$\verb|)(|$x_0,y_0$\verb|)|\ldots\ci{end}\verb|{picture}| \end{lscommand} $x,\,y,\,x_0,\,y_0$ тоонууд нь доорх тушаалаар °°рчилж болох (\ei{picture} хірээллээс бусад) \ci{unitlength} хэмжигдэхіінээр утгаа авна \begin{lscommand} \ci{setlength}\verb|{|\ci{unitlength}\verb|}{1.2cm}| \end{lscommand} \ci{unitlength}-ийн індсэн утга нь \texttt{1pt}. Эхний хос $(x,y)$ нь зургийн тэгш °нц°гт мужийг, тогтоосон °нд°р °рг°нтэйг°°р авах б°г°°д харин туслах чанарын хојр дахь хос $(x_0,y_0)$ нь сонгосон тэгш °нц°гт мужийг зіін доош нь тогтоосон °нд°р °рг°ний хэмжээгээр сунгана. Зургийн ихэнх тушаалууд дараах хојр т°рлийн аль нэгээр бичигддэг \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\emph{объект}\verb|}| \end{lscommand} \noindent эсвэл \begin{lscommand} \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{объект}\verb|}|\end{lscommand} Безьегийн мурийн хувьд онцлог, энэ нь дараах тушаалаар зурагдана \begin{lscommand} \ci{qbezier}\verb|(|$x_1,y_1$\verb|)(|$x_2,y_2$\verb|)(|$x_3,y_3$\verb|)| \end{lscommand} \newpage \subsection{Хэрчміід} \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} Хэрчмийг зурахдаа доорх тушаалыг ашиглана \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\ci{line}\verb|(|$x_1,y_1$\verb|){|$урт$\verb|}}| \end{lscommand} \ci{line} тушаал нь хојр т°рлийн хувьсагч авдаг: \begin{enumerate} \item векторын чиглэл, \item урт. \end{enumerate} Векторын чиглэл нь дараах біхэл тоон утгаар хязгаарлагдах ба \[ -6,\,-5,\,\ldots,\,5,\,6, \] харилцан энгийн тоонууд байна (1-ээс °°р ер°нхий хуваагчгій). Эхний квадрантад (тойргийн д°р°вний нэг) нийтдээ 25 боломжит ташуу шугам татагддаг б°г°°д тэдгээрийн урт нь \ci{unitlength}-ээс хамаарна. Тэрхіі уртын хувьсах утга нь босоо хэрчмийн хувьд босоо тэнхлэгийн дагуу, бусад тохиолдолд хэвтээ тэнхлэгийн дагуу тооцогддог. \subsection{Векторууд} \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} Векторыг дараах тушаалаар зурна \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\ci{vector}\verb|(|$x_1,y_1$\verb|){|$урт$\verb|}}| \end{lscommand} Векторын хувьд векторын чиглэлийн компонентууд нь хэрчмийг бодвол арай хязгаарлагдмал біхэл тоон утгад хамаарна \[ -4,\,-3,\,\ldots,\,3,\,4. \] Компонентууд нь харилцан энгийн тоонууд байна (1-ээс °°р ер°нхий хуваагчгій). Дээрх жишээнд \ci{thicklines} тушаал нь зіін дээд векторыг илэрхийлэхэд ашиглагдаж байгаа нь анзаарагдана. \subsection{Тойргууд} \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} $(x,y)$ координат дээр т°втэй \emph{диаметр} гэсэн диаметртэй (радиус биш) тойргийг \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\ci{circle}\verb|{|\emph{диаметр}\verb|}}| \end{lscommand} \noindent гэсэн тушаалаар зурах ба \ei{picture} хірээлэлд диаметрийн дээд утга нь 14\,мм байна. \ci{circle*} тушаалыг дугуй іісгэхэд ашиглана (битіі тойрог). М°н тойргийг дурын радиусаар байгуулах болон хэрчміідийг татахдаа \pai{eepic} эсвэл \pai{pstricks} нэмэлт багцуудыг ашиглах хэрэгтэй. Эдгээр багцын талаарх дэлгэрэнгій мэдээллийг \graphicscompanion\ товхимлоос ізээрэй. Гэхдээ \ei{picture} хірээлэлд тойрог болон эллипсийг дурын диаметртэйгээр байгуулахын тулд квадрат Безьегийн мурий ашиглаж болно. “інд гагцхіі тооцоо хэрэгтэй. Жишээ болон Java source файлыг \graphicsinlatex\ товхимлоос ізнэ іі. \subsection{Текст ба томьјонууд} \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.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,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} Дээрх жишээгээр \ei{picture} хірээлэлд \ci{put} тушаалыг ашиглан текст ба томьјог хэрхэн оруулж болохыг харуулжээ. \subsection{\ci{multiput} ба \ci{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} “інд \begin{lscommand} \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{объект}\verb|}| \end{lscommand} \noindent тушаал нь дараах 4 хувьсагчтай: эхлэлийн цэг, нэг объектоос н°г°°д шилжих шилжилтийн вектор, объектын тоо, м°н зурах объект тус тус болно. \ci{linethickness} тушаалыг тахир хэрчим болон тойргоос бусад хэвтээ босоо хэрчимд ашиглаж болно. Гэхдээ Безьегийн квадрат мурийд ашиглаж бас болно! \subsection{Зууван дірсіід} \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} $(x,y)$ цэгт т°втэй, $w$ урттай $h$ °нд°ртэй зууван дірсийг \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)}| \end{lscommand} \noindent эсвэл \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)[|\emph{байрлал}\verb|]}| \end{lscommand} \noindent тушаалаар байгуулж болно. \emph{байрлалыг}, ``дээд'', ``доод'', ``зіін'', ``баруун'' чигийг т°л°°л°х \texttt{b}, \texttt{t}, \texttt{l}, \texttt{r} гэсэн хувьсагчуудын хослолоор дээрх жишээнд ізіілсэн шиг сонгож болно. Шугамын °рг°нийг \ci{linethickness}\verb|{|\emph{урт}\verb|}| эсвэл \ci{thinlines} болон \ci{thicklines} гэх хојр т°рлийн тушаалаар тохируулна. Хэвтээ босоо хэрчмийн (м°н Безьегийн квадрат мурий) хувьд \ci{linethickness}\verb|{|\emph{урт}\verb|}| тушаал ійлчлэх бол \ci{thinlines} болон \ci{thicklines} тушаалууд нь тахир хэрчим ялангуяа тойрог болон зууван дірсіідэд ійлчилнэ. \subsection{Хавтасны зургийг давтан хэрэглэх} \begin{example} \setlength{\unitlength}{0.5mm} \begin{picture}(120,168) \newsavebox{\foldera} \savebox{\foldera} (40,32)[bl]{% тодорхойлолт \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]{% тодорхойлолт \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} Хавтасны зургийг дараах тушаалаар \emph{зарлаж} \begin{lscommand} \ci{newsavebox}\verb|{|\emph{нэр}\verb|}| \end{lscommand} \noindent доорх тушаалаар \emph{тодорхойлох} ба \begin{lscommand} \ci{savebox}\verb|{|\emph{нэр}\verb|}(|\emph{°рг°н,°нд°р}\verb|)[|\emph{байрлал}\verb|]{|\emph{агууламж}\verb|}| \end{lscommand} \noindent агуулагдах зургаа дараах тушаалаар \emph{байршуулна} \begin{lscommand} \ci{put}\verb|(|$x,y$\verb|)|\ci{usebox}\verb|{|\emph{нэр}\verb|}| \end{lscommand} \emph{Байрлал} заах хувьсагчийг тухайн хайрцгийн `бусад хайрцагтай холбогдох цэгийг' заахад ашиглах б°г°°д дээрх жишээнд іінийг зіінд доод буланд байрлуулсан тул \texttt{bl} хэмээн тэмдэглэжээ. Бусад байрлалыг \texttt{t}op болон \texttt{r}ight гэж тодорхойлж болно. \emph{Нэр} хэмээх іл хамаарах хувьсагч нь \LaTeX{} тушаалын т°р°лд хамаарна (дээрх жишээнд ташуу зураастайгаар орсон). Хавтасны зургууд бие биендээ агуулагдаж болно: Энэхіі жишээнд, \ci{foldera} нь \ci{folderb}-г илэрхийлэхэд ашиглагдаж байна. \ci{line} тушаал нь ойролцоогоор 3\,мм-ээс бага урттай хэрчмийг дірслэх боломжгій байдаг тул ііний оронд \ci{oval} тушаалыг ашиглах шаардлага гарсан байна. \subsection{Безьегийн квадрат мурий} \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} Дээрх жишээнээс, тойргийг, 4 хэсэг Безьегийн квадрат мурийд хуваах нь хангалтгій, дор хаяж 8 хэсэгт хуваах шаардлагатай нь харагдаж байна. Уг зурагт \ci{linethickness} тушаалын хэвтээ буюу босоо шугам дахь ійлчлэл болон \ci{thinlines} ба \ci{thicklines} тушаалуудын тахир шугам дахь ійлчлэліідийг, м°н дээрх хојр тушаал нь Безьегийн квадрат мурийн хувьд °мн° зарлагдсан утгаа хічингій болгоход н°л°°лж болохыг тус тус ізіілжээ. $P_1=(x_1,\,y_1),\,P_2=(x_2,\,y_2)$ гэдгээр Безьегийн квадрат мурийн т°гсг°лийн цэгіідийг, $m_1,\,m_2$ гэдгээр харгалзах налууг тус тус тэмдэглэв. Тэгвэл завсрын т°в цэг $S=(x,\,y)$ нь дараах томьјогоор илэрхийлэгдэнэ \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}, \\ y & = & y_i+m_i(x-x_i)\qquad (i=1,\,2). \end{array} \right. \end{equation} \noindent \ci{qbezier} тушаалын Java программ дээрх боловсруулалтыг \graphicsinlatex\ товхимлоос сонирхож болно. \subsection{Гинжин шугам} \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} Дээрх жишээнд $y=\cosh x -1$ гинжин шугамын тэгш хэмийн хагасыг Безьегийн квадрат мурийгаар ойролцоолоход мурийн баруун хагас нь \((2,\,2.7622)\) цэгээр т°гс°ж, хазайлтын утга нь \(m=3.6269\) болж байна. “інд (\ref{zwischenpunkt}) томьјог ашиглаж завсрын т°в цэгийг олбол $(1.2384,\,0)$ ба $(-1.2384,\,0)$ болно. Гинжин шугамын \emph{бодит} цэгіідийг хэрээсээр тэмдэглэв. Алдаа нь бага зэрэг мэдэгдэхійц, нэг хувиас бага. Энэ жишээнд \verb|\begin{picture}| тушаалын дурын іл хамаарах хувьсагчийн (optional argument) хэрэглээг голчлон ізіілжээ. Уг график ``математикийн'' координатад дараах тушаалаар тодорхойлогдоод \begin{lscommand} \ci{begin}\verb|{picture}(4.3,3.6)(-2.5,-0.25)| \end{lscommand} \noindent тііний зіін доод булан (дугараг хараар тэмдэглэгдсэн) $(-2.5,-0.25)$ координатад тэмдэглэгдэж байна. \subsection{Харьцангуйн тусгай онол дахь хурдавчлал} \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} Безьегийн хојр мурийн т°в цэгіідийг (\ref{zwischenpunkt}) томьјогоор тооцоолж, эерэг мужийн утгуудыг $P_1=(0,\,0),\,m_1=1$ ба $P_2=(2,\,\tanh 2),\,m_2=1/\cosh^2 2$ гэж олжээ. Уг зургийг математикийн зохих координатад тодорхойлж, зіін доод буланг $(-3,-2)$ гэсэн координатад (дугараг хараар) тэмдэглэв. \section{TikZ \& PGF график багц} \LaTeX{} дээр нягтралаа хадгалагч вектор зургийг боловсруулж болох ба PGF багц нь зургийг хялбар тушаалын тусламжтайгаар хэд хэдэн давхаргуудаар бітээх бололцоог олгоно. PGF багцад 500+ ніір біхий баримт \cite{pgfplots} дагалддаг. Энд бид з°вх°н уг багцын талаар товчхон судлах болно. PGF багцын °нд°р т°вшний хандалтат функціідийг ашиглахын тулд \pai{tikz} багцыг дуудах хэрэгтэй ба ингэснээр зургийг, \ei{tikzpicture} хірээлэлд °нд°р боловсруулалт біхий тушаалуудаар зурах боломж бірдэнэ. \begin{example} \begin{tikzpicture}[scale=3] \clip (-0.1,-0.2) rectangle (1.8,1.2); \draw[step=.25cm,gray,very thin] (-1.4,-1.4) grid (3.4,3.4); \draw (-1.5,0) -- (2.5,0); \draw (0,-1.5) -- (0,1.5); \draw (0,0) circle (1cm); \filldraw[fill=green!20!white, draw=green!50!black] (0,0) -- (3mm,0mm) arc (0:30:3mm) -- cycle; \end{tikzpicture} \end{example} Хэрэв та программчлалын ямар нэгэн хэл мэддэг бол цэгтэй таслал нь (\texttt{;}) командуудыг °°р хооронд нь тусгаарлахад хэрэглэгдэж байгааг т°в°ггійхэн ойлгоно. Доорх жишээ зургийн кодын эхлэлд \ci{usetikzlibrary} тушаалыг зарласнаар, бага зэргийн мурийлттай хайрцгийг байгуулахад ашиглагдах зургийн нэмэлт боломжийг бірдіілж байна. \begin{example} \usetikzlibrary{% decorations.pathmorphing} \begin{tikzpicture}[ decoration={bent,aspect=.3}] \draw [decorate,fill=lightgray] (0,0) rectangle (5.5,2); \node[circle,draw] (A) at (.5,.5) {A}; \node[circle,draw] (B) at (5,1.5) {B}; \draw[->,decorate] (A) -- (B); \draw[->,decorate] (B) -- (A); \end{tikzpicture} \end{example} Программчлалын хэлний номуудад байдаг диаграммыг хіртэл зурах боломжтой. Уг диаграммыг зурах код нь нісэр болох тул з°вх°н ір дінг нь ізііллээ. Энэ диаграммыг зурах дэлгэрэнгій зааварчилгыг PGF баримтаас авч болно. \begin{center} \begin{tikzpicture}[point/.style={coordinate},thick,draw=black!50,>=stealth', tip/.style={->,shorten >=1pt},every join/.style={rounded corners}, skip loop/.style={to path={-- ++(0,#1) -| (\tikztotarget)}}, hv path/.style={to path={-| (\tikztotarget)}}, vh path/.style={to path={|- (\tikztotarget)}}, terminal/.style={ rounded rectangle, minimum size=6mm, thick,draw=black!50, top color=white,bottom color=black!20, font=\ttfamily\tiny}, nonterminal/.style={ rectangle, minimum size=6mm, thick, draw=red!50!black!50, % 50% red and 50% black, top color=white, % a shading that is white at the top... bottom color=red!50!black!20, % and something else at the bottom font=\itshape\tiny}] \matrix[column sep=4mm] { % First row: & & & & & & & & & & & \node (plus) [terminal] {+};\\ % Second row: \node (p1) [point] {}; & \node (ui1) [nonterminal] {unsigned integer}; & \node (p2) [point] {}; & \node (dot) [terminal] {.}; & \node (p3) [point] {}; & \node (digit) [terminal] {digit}; & \node (p4) [point] {}; & \node (p5) [point] {}; & \node (p6) [point] {}; & \node (e) [terminal] {E}; & \node (p7) [point] {}; & & \node (p8) [point] {}; & \node (ui2) [nonterminal] {unsigned integer}; & \node (p9) [point] {}; & \node (p10) [point] {};\\ % Third row: & & & & & & & & & & & \node (minus)[terminal] {-};\\ }; { [start chain] \chainin (p1); \chainin (ui1) [join=by tip]; \chainin (p2) [join]; \chainin (dot) [join=by tip]; \chainin (p3) [join]; \chainin (digit) [join=by tip]; \chainin (p4) [join]; { [start branch=digit loop] \chainin (p3) [join=by {skip loop=-6mm,tip}]; } \chainin (p5) [join,join=with p2 by {skip loop=6mm,tip}]; \chainin (p6) [join]; \chainin (e) [join=by tip]; \chainin (p7) [join]; { [start branch=plus] \chainin (plus) [join=by {vh path,tip}]; \chainin (p8) [join=by {hv path,tip}]; } { [start branch=minus] \chainin (minus) [join=by {vh path,tip}]; \chainin (p8) [join=by {hv path,tip}]; } \chainin (p8) [join]; \chainin (ui2) [join=by tip]; \chainin (p9) [join,join=with p6 by {skip loop=-11mm,tip}]; \chainin (p10) [join=by tip]; } \end{tikzpicture} \end{center} \pagebreak Тоон °г°гд°л болон функц агуулсан т°р°л бірийн диаграмм зургуудыг \pai{pgfplot} багцын тусламжтайгаар зурах б°г°°д энд функцийг інэлэхэд \texttt{gnuplot} тушаалыг ашиглаж бас болно. %%% Local Variables: %%% TeX-master: "lshort.tex" %%% mode: flyspell %%% TeX-PDF-mode: t %%% End: