-
Notifications
You must be signed in to change notification settings - Fork 27
Kuvaympäristö
Esimerkiksi kuvaajat ja lukusuorat voidaan piirtää kuva-ympäristön avulla. Ympäristön sisään kirjoitetaan Python-koodi joka generoi kuvan. Yksinkertaisin tapa lisätä kuva on
\begin{kuva}
KOODI
\end{kuva}
Kuva-ympäristöä ei voida laittaa joidenkin ympäristöjen sisään, jolloin täytyy ensin määritellä kuva päätasolla
\begin{luoKuva}{NIMI}
KOODI
\end{luoKuva}
ja sitten näyttää kuva lisäämällä koodi
\naytaKuva{NIMI}
kuvan sijoituskohtaan. Kuvan nimiä voi käyttää uudelleen, luoKuva aina ylikirjoittaa vanhan.
Tavallisesti kuvissa tarvittava Python-koodi on sarja funktiokutsuja, jokainen omalla rivillään. Funktiokutsu on muotoa FUNKTIO(PARAMETRIT), missä PARAMETRIT on pilkulla erotettu lista funktion parametrien arvoja. Osalla funktion parametreista voi olla oletusarvoja, jolloin niitä ei tarvitse erikseen ilmoittaa. Esimerkiksi jos funktiolla f on parametrit a, b ja c joista b:llä on oletusarvo 1 ja c:llä oletusarvo 2, niin funktiokutsu f(100, c = 300) tarkoittaa parametrien arvoja a = 100, b = 1, c = 300.
Jos Python-koodissa on virhe, käännössä tulee yleensä virhe
! LaTeX Error: File `kuva-tmp-output.txt' not found.
Tällöin Python-virheilmoitus on heti tämän yläpuolella.
Kuvissa voi tietenkin käyttää Pythonia muutenkin, mutta kannattaa tehdä sellaista että toimii sekä Python 2:lla että Python 3:lla.
- funktio piste: Piirtää pisteen haluttuun kohtaan. Toimii myös kuvaajapohjassa.
- parametri P: Pisteen sijainti.
- parametri nimi: Pisteen viereen merkittävä nimi. (oletusarvo "")
- parametri suunta: Nimen merkitsemissuunta, muotoa (x-suunta, y-suunta). (oletusarvo (1, 0))
ESIM: Pisteen piirtäminen kohtaan (5, 3):
\begin{kuva}
piste((5, 3))
\end{kuva}
ESIM: Pisteen piirtäminen kohtaan (3, 1), nimellä "A" joka merkitään vasemmalle alas
\begin{kuva}
piste((3, 1), "A", (-1, -1))
\end{kuva}
- funktio kuvaaja.pohja: Luo kuvaajapohjan ja muuttaa piirtotilan piirtämään sen sisään.
- parametrit minX, maxX, minY, maxY: X- ja Y-akselien ala- ja ylärajat. Täytyy päteä minX <= 0 <= maxX ja minY <= 0 <= maxY
- parametrit leveys, korkeus: Kuvaajapohjan leveys ja korkeus. Mikäli molemmat jätetään tyhjäksi, kokona käytetään (maxX - minX) x (maxY - minY). Mikäli vain toinen jätetään tyhjäksi, se päätellään toisesta niin että kuvaajasta tulee isometrinen.
- parametrit nimiX, nimiY: X- ja Y-akselien nimet LaTeX-koodina. (oletusarvot "")
- parametri ruudukko: Piirretäänkö kuvaajapohjaan ruudukko. (oletusarvo: True)
Kuvaajapohja yrittää tehdä jotenkin järkevän näköisen ruudukon taustalle, mutta se voi yhä joissain tapauksissa näyttää huonolta, yritetään parantaa...
- funktio kuvaaja.piirra: Piirtää annetun funktion (y = f(x)) kuvaajan. Ei vaadi välttämättä kuvaajapohjaa.
- parametri f: Piirrettävä x:n funktio, esim "x**2" tai "cos(x)" (Python-koodia merkkijonossa).
- parametrit a ja b: X-koordinaattien väli [a, b]. Jos jompikumpi otetaan pois, käytetään nykyisiä X-rajoja, jotka alustetaan esimerkiksi kuvaaja.pohjassa automaattisesti.
- parametri nimi: Funktion yhteyteen merkittävä nimi LaTeX-koodina. (oletusarvo: "")
- parametri kohta: Funktion kohta johon nimi merkitään. Jos jätetään tyhjäksi, nimi merkitään funktion viimeiseen piirrettyyn kohtaan. Jos luku x, nimi merkitään kohtaan (x, f(x)). Jos pari (x, y), nimi merkitään kohtaan (x, y).
- parametri suunta: Mihin suuntaan nimi laitetaan. Toimii samalla tavalla kuin funktion 'piste' suunta-parametri. (oletusarvo: (1, 0))
ESIM: kuvaajapohja alueelle [-1, 4] x [-2, 3] johon piirretään nimetty funktion x^2-2 kuvaaja.
\begin{kuva}
kuvaaja.pohja(-1, 4, -2, 3)
kuvaaja.piirra("x**2-2", nimi = "$x^2 - 2$")
\end{kuva}
ESIM: isometrinen kuvaajapohja alueelle [-1, 1] x [-1, 1] ilman ruudukkoa jossa x:ksi ja y:ksi nimetyt akselit, ja sen päälle kuvaajat x^3-1/2:sta välillä [0.2, 0.95] johon nimi kohtaan 0.6 ylävasemmalle ja sen päälle normaalisti nimetty funktion x kuvaaja
\begin{kuva}
kuvaaja.pohja(-1, 1, -1, 1, korkeus = 8, nimiX = "$x$", nimiY = "$y$", ruudukko = False)
kuvaaja.piirra("x**3-0.5", a = 0.2, b = 0.95, nimi = "$x^3-1/2$", kohta = 0.6, suunta = (-1, 1))
kuvaaja.piirra("x", nimi = "$x$")
\end{kuva}
- funktio vari: Asettaa piirrossa käytettävän värin. Väriä käytetään esim. pisteisiin, kuvaajiin ja niiden nimiin.
- parametri uusivari: Uusi käytettävä väri TiKZin ymmärtämässä muodossa. xcolor-värit ovat hyviä, esimerkiksi "red", "blue", "black!10!white" (sekoitus mustasta ja valkoisesta, 10% mustaa).
- funktio paksuus: Asettaa kuvaajien ja muiden viivojen piirrossa käyttettävän viivanpaksuuden.
- parametri kerroin: Uuden paksuuden kerroin suhteessa oletuspaksuuteen.
ESIM: Piirretään ensin tavallinen funktion x kuvaaja ja sitten punainen paksu funktion -y kuvaaja samaan pohjaan.
\begin{kuva}
kuvaaja.pohja(-1, 1, -1, 1)
kuvaaja.piirra("x")
vari("red")
paksuus(2)
kuvaaja.piirra("-x")
\end{kuva}
Piirtoasetukset muuttavat asetuksia nykyisen kuvan loppuun asti. Jos halutaan käyttää asetuksia vain tilapäisesti, täytyy koodi laittaa with palautin():
-blokkiin, joka sisennetyn koodin loputtua palauttaa asetukset.
ESIM: Piirretään ensin tavallinen piste P, sitten piste Q sinisellä, sitten taas tavallinen piste R.
\begin{kuva}
piste((0, 0), "P")
with palautin():
vari("blue")
piste((2, 0), "Q")
piste((1, 1.5), "R")
\end{kuva}
Kaikissa piirtoasetusfunktioissa on myös palautin-ominaisuus valmiina, joten saman voi kirjoittaa lyhemmin:
\begin{kuva}
piste((0, 0), "P")
with vari("blue"):
piste((2, 0), "Q")
piste((1, 1.5), "R")
\end{kuva}
tai jopa
\begin{kuva}
piste((0, 0), "P")
with vari("blue"): piste((2, 0), "Q")
piste((1, 1.5), "R")
\end{kuva}