Matemaatika ja statistika instituut
Logi sisse
  • English
  • Kursused
  • 2025/26 sügis
  • Matemaatilise teksti küljendamine (MTMM.00.328)

Matemaatilise teksti küljendamine 2025/26 sügis

  • Üldandmed
  • Korraldus
  • Praktikumid
  • Viited

Praktikum 8

TikZi joonised

Võtke fail joonised-tikz.tex ja koostage sinna nõutavad TikZ-keeles joonised. Näidiseks on fail joonised_naidis-tikz.pdf.

LaTeX-dokumendi preambulasse tuleb paigutada \usepackage{tikz}

Joonised paigutatakse \begin{tikzpicture} ja \end{tikzpicture} vahele.

Esimese joonise näpunäited

  1. Ruudu joonistamine
    \begin{tikzpicture}[x=1cm,y=1cm]
    \draw (0,0) rectangle (1,1);
    \end{tikzpicture}
    
  2. Alternatiivne variant: ruut joonistatud kinnise murdjoonena
    \begin{tikzpicture}[x=1cm,y=1cm]
    \draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
    \end{tikzpicture}
    
  3. Täidetud ruut ja paks äärejoon
    \begin{tikzpicture}[x=1cm,y=1cm]
    \fill[black] (0,0) rectangle (1,1);
    \draw[line width=3pt] (0,0) -- (8,0) -- (8,8) -- (0,8) -- cycle;
    \end{tikzpicture}
    
  4. Esimene rida täidetud ruutusid tsükliga, kus ruudu alumise vasaku nurga {$x$}-koordinaat saab väärtused {$0,2,4,6$} (aritmeetiline jada algusega {$0$}, lõpuga {$6$} ja teine liige on {$2$})
    \begin{tikzpicture}[x=1cm,y=1cm]
    \foreach \i in {0,2,...,6}
      {
      \fill[black] (\i,0) rectangle (\i+1,1);
      }
    \draw[line width=3pt] (0,0) -- (8,0) -- (8,8) -- (0,8) -- cycle;
    \end{tikzpicture}
    
  5. Samamoodi esimene rida täidetud ruutusid, aga tsüklis omandab {$i$} nüüd väärtused {$0,1,2,3,4,5,6,7$} ning if-lausega jäetakse alles ainult juhtumid {$0,2,4,6$}. NB! Preambulasse on vaja paigutada \usepackage{ifthen}
    \begin{tikzpicture}[x=1cm,y=1cm]
    \foreach \i in {0,1,...,7}
      {
      \ifthenelse{\i=0 \OR \i=2 \OR \i=4 \OR \i=6}
        {
          \fill[black] (\i,0) rectangle (\i+1,1);
        }
      }
    \draw[line width=3pt] (0,0) -- (8,0) -- (8,8) -- (0,8) -- cycle;
    \end{tikzpicture}
    

TikZi käsud

  • \begin{tikzpicture}[x=1cm,y=1cm] . . . \end{tikzpicture} joonise kood pannakse sellesse keskkonda, sealjuures x=1cm ja y=1cm panevad paika, millised on joonise sees kasutatavad {$x$}- ja {$y$}-suunalised pikkusühikud
  • joonistamiskäsk \draw[parameeter,parameeter] objekt
    • parameeter draw=red määrab joonevärviks punase
    • parameeter line width=3pt määrab joonepaksuse
    • parameeter fill=blue määrab täitmisvärviks sinise (eeskätt mõttekas kinnise joone korral)
    • parameeter rotate=90 määrab joonistamise {$90$} kraadi vastupäeva pööratuna
    • parameeter shift={(-1,0)} määrab joonistamise nihutatuna vektori {$(-1,0)$} võrra
    • objekt (1,1) rectangle (2,3) on ristkülik, mille üks nurk on (1,1) ja selle nurga vastasnurk on (2,3)
    • objekt (1,0) circle (3) on ringjoon keskpunktiga (1,0) ja raadiusega 3
    • objekt coordinates{ (0,0)(8,0)(8,7)(7,7)(7,8)(0,8) } on (mittekinnine) murdjoon etteantud punktidega
    • objekt coordinates{ (0,0)(8,0)(8,7)(7,7)(7,8)(0,8)(0,0) } on kinnine murdjoon (alg- ja lõpp-punkt langevad kokku)
    • objektid (0,0)--(8,0)--(8,7)--(7,7)--(7,8)--(0,8) ja (0,0)--(8,0)--(8,7)--(7,7)--(7,8)--(0,8)--cycle on samad mis kaks eelnevat (lühinotatsioon)
  • kõverjoonte (Bézier' kõverate) joonistamiseks on vaja preambulas laadida \usetikzlibrary{hobby}
    • mittekinnine kõverjoon, mis läbib antud punkte: \draw plot [hobby] coordinates { (0,0)(8,0)(8,7)(7,7)(7,8)(0,8) };
    • kinnine kõverjoon: \draw plot [closed hobby] coordinates { (0,0)(8,0)(8,7)(7,7)(7,8)(0,8) };
  • arvmuutujad: \def\x1{2} (see pole üldse TikZ, vaid puhas TeX)
  • arvmuutujatega töötamiseks on võimalik kasutada ka \usetikzlibrary{math} või \usetikzlibrary{calc} pakette
    • math pakett võimaldab: \tikzmath{\x1 = 1; \y1 =1; \x2 = \x1 + 1; \y2 =\y1 +3; }
    • calc pakett võimaldab: \draw (0,0)--({2.5*cos(220)},{2.5*sin(220)}) (lõik punktist (0,0) kuni punktini (2.5,0), mis on 220 kraadi võrra pööratud vastupäeva
  • punktmuutuja defineerimine: \coordinate (A) at (2,1);
  • tsükkel üle loetelu \foreach\i in {1,2,3,2} { tsükli keha } -- tsükli keha täidetakse neli korda, vastavalt {$i=1$}, {$i=2$}, {$i=3$} ja (uuesti) {$i=2$} korral
  • tsükkel üle aritmeetilise jada \foreach\i in {1,4,...,12} { tsükli keha } -- tsükli keha täidetakse {$i=1$}, {$i=4$}, {$i=7$} ja {$i=10$} korral (viimane arv {$12$} tähendab seda, et tsüklist väljutakse, kui järgmisel korral oleks tsüklimuutuja {$i$} väärtus juba suurem kui {$12$})
  • puhas TeX ja LaTeX pakuvad ka muid tsükli võimalusi
  • \coordinate (C) at ($(A)!0.35!(B)$); defineeritakse punkt {$C$} lõigul {$AB$}, kus {$A$} poole jääb {$0{,}35$} osa ja {$B$} poole {$1-0{,}35$} osa
  • valikulause jaoks laadida \usepackage{ifthen} (see pole TikZi, vaid LaTeXi pakett)
    • \ifthenelse{\i < 7 \OR \j < 7}{ keha-kui-tingimus-tõene }{ keha-kui-tingimus-väär}
  • puhas TeX pakub ka muid (kohmakamaid) valikulause variante
  • Teksti lisamine
    • \node at (3,1) {$\frac{1}{2}$}; tekst {$\frac12$} antud punktis
    • \node at (A) [above right] {$A$}, [below left], [right] jne teksti asukoht punkti {$A$} suhtes
  • Täppisgeomeetria (kolmnurga ümberringjoon, kahe ringjoone lõikepunkt jpm) jaoks tõenäoliselt vajalik \usepackage{tkz-euclide}

NB! Kodutöö lahendamisel tuleb projekti koosseisu paigutada Metaposti lähtekood ning sellest saadud PDF joonised. Kontrolltöös võib soovi korral kasutada TikZi.

  • Matemaatika ja statistika instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.