> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/pl/rysunki-i-tabele/04-picture-environment.md).

# Rysowanie diagramów bezpośrednio w LaTeX-u

## Wstęp

wbudowany w LaTeX `picture` środowisko może być używane do tworzenia diagramów/rysunków — nie trzeba *muszą* ładować żadnych zewnętrznych pakietów, aby z niego korzystać, ale pakiety takie jak [`pict2e`](https://ctan.org/pkg/pict2e?lang=en) i [`picture`](https://ctan.org/pkg/picture) zostały napisane, aby rozszerzyć lub ulepszyć jego funkcje.

Ten artykuł zawiera zwięzłe wprowadzenie do `picture` środowiska, a wszystkie przykłady używają [`pict2e` pakietu](https://ctan.org/pkg/pict2e?lang=en). Bardziej obszerna dokumentacja oraz szereg pomocnych przykładów są łatwo dostępne w następujących zasobach:

* [Nieoficjalny podręcznik referencyjny LaTeX2e](https://latexref.xyz/picture.html)
* [Nie tak krótki wstęp do LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (zobacz rozdział 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [pytania otagowane `picture-mode` na tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` dokumentacja pakietu](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)

W porównaniu z potężnymi i zaawansowanymi narzędziami graficznymi, takimi jak [TikZ/PGF](https://en.wikipedia.org/wiki/PGF/TikZ), [MetaPost](https://tug.org/metapost.html), [PSTricks](https://ctan.org/topic/pstricks?lang=en) lub [Asymptote](https://ctan.org/pkg/asymptote?lang=en) stronie `picture` środowisko może wydawać się dość ograniczone, ale od czasu do czasu może być wystarczające do tego, co chcesz zrobić.

## Tworzenie nowego rysunku

Tworzenie nowego rysunku zwykle obejmuje następujące kroki:

1. zdefiniuj rozmiar jednostek rysunku, których chcesz używać;
2. zadeklaruj `picture` środowisko, które określa rozmiar rysunku;
3. narysuj poszczególne elementy graficzne za pomocą `\put`, `\multiput` lub `\qbezier` poleceń.

### Zdefiniuj rozmiar jednostek rysunku

Aby utworzyć rysunek, zwykle zaczynasz od ustawienia *jednostek rysunku* za pomocą polecenia `\unitlength`, którego należy używać poza `picture` środowiskiem. Na przykład, jeśli wpiszesz

```latex
\setlength{\unitlength}{1cm}
```

jednostki rysunku byłyby interpretowane jako wielokrotności 1 cm. Domyślną jednostką jest 1 pt.

### Zdefiniuj rozmiar swojego rysunku

Ogólna postać `picture` środowiska jest następująca

```latex
\begin{picture}(width, height)(Xoffset, Yoffset)
 ...
\end{picture}
```

gdzie

* `width` i `wysokość` są wartościami, w jednostkach `\unitlength`, które określają rozmiar rysunku. LaTeX używa tych wartości do utworzenia pola, którego wymiary wynoszą
  * szerokość pola (rysunku) = `width` × `\unitlength`
  * wysokość pola (rysunku) = `wysokość` × `\unitlength`
* `(Xoffset, Yoffset)` jest opcjonalną współrzędną, która ustawia początek (dolny lewy róg) rysunku, wyrażoną jako *przesunięcie* względem domyślnego położenia. `Xoffset` i `Yoffset` są również wyrażone w jednostkach określonych przez bieżącą wartość `\unitlength`.

Należy zauważyć, że `Xoffset` i `Yoffset` nie wpływają na ilość miejsca, jakie LaTeX rezerwuje; tzn. na wymiary pola.

#### Zrozumienie wymiarów rysunku

Utworzymy dwa rysunki, oba używając `\setlength{\unitlength}{1cm}` i każdy z `width` i `wysokość` o rozmiarze 3 jednostek.

Pierwszy rysunek używa domyślnego początku `(0,0)`:

```latex
\begin{picture}(3,3)
...
\end{picture}
```

drugi rysunek przesuwa początek o `(1,1)`:

```latex
\begin{picture}(3,3)(1,1)
...
\end{picture}
```

### Rysowanie grafiki

Grafika jest tworzona za pomocą sekwencji `\put`, `\multiput`, lub `\qbezier` poleceń, które tworzą poszczególne „elementy” (lub „obiekty”), z których zbudowany jest rysunek lub ilustracja:

* `\put(x, y){*component*}` rysuje `*component*` w położeniu `(x, y)`.
* `\multiput(x, y)(dx, dy){n}{*component*}` rysuje `*component*` `n` razy: zaczynając od położenia `(x, y)` i wielokrotnie przesuwając o `(dx, dy)` aby ponownie narysować `*component*`.
* `\qbezier[n](x<sub>1</sub>, y<sub>1</sub>)(x, y)(x<sub>2</sub>, y<sub>2</sub>)`: rysuje [kwadratową krzywą Béziera](https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B%C3%A9zier_curves) gdzie:
  * `n` opcjonalną liczbę całkowitą, która określa liczbę punktów użytych do narysowania/utworzenia krzywej
  * `(x<sub>1</sub>, y<sub>1</sub>)` jest punktem początkowym krzywej
  * `(x<sub>2</sub>, y<sub>2</sub>)` jest punktem końcowym krzywej
  * `(x, y)` oznacza punkt kontrolny (kwadratowej) krzywej Béziera

Skopiowany `*component*` jest elementem graficznym zwykle tworzonym za pomocą prymitywów graficznych, takich jak `\line`, `\oval`, `\circle`, `\vector` i tak dalej — zobacz [Nieoficjalny podręcznik referencyjny LaTeX2e](https://latexref.xyz/picture.html) lub [Nie tak krótki wstęp do LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (rozdział 5), aby poznać szczegóły dostępnych prymitywów.

**Uwaga**: Pakiet [`pict2e` pakietu](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf) rozszerza oryginalne `picture` środowisko, aby udostępnić kilka poleceń do rysowania krzywych Béziera: `\bezier`, `\qbezier`, `\cbezier` i `\qbeziermax`.

### Zrozumienie przesunięcia i początku

W poniższych przykładach `\put` polecenie służy do rysowania kolorowych kropek wskazujących kluczowe współrzędne (położenia) w grafice. Oba przykłady używają polecenia LaTeX `\fbox` do narysowania obramowania wokół pola utworzonego przez LaTeX, które zawiera nasz rysunek, pokazując *ramkę ograniczającą* grafiki.

**Przykład 1: użycie domyślnego początku**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

To jest mój rysunek\fbox{%
\begin{picture}(3,3)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt \texttt{(0,0)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt \texttt{(3,3)}}}
\end{picture}}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![wymiary środowiska picture LaTeX](/files/d6098038bef97e7ebde04f6659b182eb33151f02)

Ta `\fbox` polecenie rysuje obramowanie wokół ramki ograniczającej grafiki, pokazując przestrzeń (obszar) zarezerwowaną przez LaTeX:

* szerokość rysunku = `width` × `\unitlength` = 3 × 1 cm = 3 cm.
* wysokość rysunku = `wysokość` × `\unitlength` = 3 × 1 cm = 3 cm.

Pierwszy przykład pokazuje, że początek `(0,0)`, znajduje się w punkcie, w którym `\begin{picture}` polecenie zostało wykonane, bezpośrednio po tekście „To jest mój rysunek”. Ponadto prawy górny róg znajduje się w położeniu `(3,3)`, a `(szerokość,wysokość)` wartości podane do `\begin{picture}(3,3)`.

**Przykład 2: przesunięcie początku o (1,1)**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

To jest mój rysunek\fbox{%
\begin{picture}(3,3)(1,1)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt\texttt{(0,0)}}}
\put(1,1){{\color{orange}\circle*{0.25}}\hbox{\kern3pt\texttt{(1,1)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt\texttt{(3,3)}}}
\put(4,4){{\color{black}\circle*{0.25}}\hbox{\kern3pt\texttt{(4,4)}}}
\end{picture}}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%281%2C1%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%281%2C1%29%7B%7B%5Ccolor%7Borange%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%281%2C1%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cput%284%2C4%29%7B%7B%5Ccolor%7Bblack%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%284%2C4%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![wymiary środowiska picture LaTeX](/files/970382e79f2fe96dc4d70e90843c19b5f6b2d988)

Drugi przykład pokazuje skutki przesunięcia początku i podkreśla kilka kluczowych punktów:

* obramowanie utworzone przez `\fbox` pokazuje, że ramka ograniczająca grafiki, szerokość i wysokość pola utworzonego przez LaTeX, jest *niezmieniona* przez przesunięcie początku: nadal jest określana przez `(szerokość,wysokość)` wartości podane do `\begin{picture}(3,3)(1,1)`
  * szerokość rysunku = `width` × `\unitlength` = 3 × 1 cm = 3 cm
  * wysokość rysunku = `wysokość` × `\unitlength` = 3 × 1 cm = 3 cm
* elementy rysunku nie są ograniczone (przycinane) do obszaru (wymiarów ramki ograniczającej) utworzonego przez LaTeX. Na przykład niebieska kropka i `(0,0)` współrzędna są rysowane poza linią graniczną utworzoną przez `\fbox`, która wskazuje ramkę ograniczającą.
  * To użytkownik musi dopilnować, aby elementy rysunku pozostały w obrębie ramki ograniczającej i nie nakładały się na otaczający tekst.
* początek, `(0,0)`, jest *już nie* umieszczony bezpośrednio po tekście „To jest mój rysunek”, w punkcie, w którym `\begin{picture}` polecenie zostało wykonane: początek jest teraz przesunięty o 1 jednostkę w lewo i 1 jednostkę w dół
* prawy górny róg znajduje się teraz w położeniu `(4,4)`

## Przykłady środowiska picture

### Przykłady z nieoficjalnego podręcznika referencyjnego LaTeX2e

Ta [Nieoficjalny podręcznik referencyjny LaTeX2e](https://latexref.xyz/picture.html) zawiera wiele `picture` przykładów środowiska, z których niektóre zostały tu odtworzone wraz z linkami otwierającymi je w Overleaf, umożliwiając edycję i eksplorację kodu.

#### Przykład 1: polecenie \vector

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % pole rysunku będzie miało 6 cm szerokości i 6 cm wysokości
  \put(0,0){\vector(2,1){4}}  % na każde 2 w prawo ten wektor idzie 1 w górę
    \put(2,1){\makebox(0,0)[l]{\ pierwszy odcinek}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ drugi odcinek}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{suma\ }}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%286%2C6%29++++++%25+picture+box+will+be+6cm+wide+by+6cm+tall%0A++%5Cput%280%2C0%29%7B%5Cvector%282%2C1%29%7B4%7D%7D++%25+for+every+2+over+this+vector+goes+1+up%0A++++%5Cput%282%2C1%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+first+leg%7D%7D%0A++%5Cput%284%2C2%29%7B%5Cvector%281%2C2%29%7B2%7D%7D%0A++++%5Cput%285%2C4%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+second+leg%7D%7D++%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C1%29%7B6%7D%7D%0A++++%5Cput%283%2C3%29%7B%5Cmakebox%280%2C0%29%5Br%5D%7Bsum%5C+%7D%7D++%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![przykład środowiska picture](/files/84744cce56751d761f3aab20f712de04ca1b8822)

#### Przykład 2: polecenia \qbezier, \line, \vector, \thinlines i \thicklines

Zwróć uwagę, że `\qbezier` polecenie *nie jest* używany wewnątrz `\put{...}` natomiast inne polecenia prymitywne, takie jak `\line`, `\vector` *jesteś* używany wewnątrz `\put{...}`.

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(8,4)
  \thinlines % Zacznij od cienkich linii
  \put(0,0){\vector(1,0){8}}  % oś x
  \put(0,0){\vector(0,1){4}}  % oś y
  \put(2,0){\line(0,1){3}}    % lewa strona
  \put(4,0){\line(0,1){3.5}}  % prawa strona
  \thicklines % Użyj grubszych linii dla poleceń \qbezier
  \qbezier(2,3)(2.5,2.9)(3,3.25)
  \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thinlines % Powrót do używania cienkich linii
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Reguła trapezów}}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=qbezier+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%288%2C4%29%0A++%5Cthinlines+%25+Start+with+thin+lines%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C0%29%7B8%7D%7D++%25+x+axis%0A++%5Cput%280%2C0%29%7B%5Cvector%280%2C1%29%7B4%7D%7D++%25+y+axis%0A++%5Cput%282%2C0%29%7B%5Cline%280%2C1%29%7B3%7D%7D++++%25+left+side%0A++%5Cput%284%2C0%29%7B%5Cline%280%2C1%29%7B3.5%7D%7D++%25+right+side%0A++%5Cthicklines+%25+Use+thicker+lines+for+the+%5Cqbezier+commands%0A++%5Cqbezier%282%2C3%29%282.5%2C2.9%29%283%2C3.25%29%0A++%5Cqbezier%283%2C3.25%29%283.5%2C3.6%29%284%2C3.5%29%0A++%5Cthinlines+%25+Back+to+using+thin+lines%0A++%5Cput%282%2C3%29%7B%5Cline%284%2C1%29%7B2%7D%7D%0A++%5Cput%284.5%2C2.5%29%7B%5Cframebox%7BTrapezoidal+Rule%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Przykład środowiska picture LaTeX](/files/c374a2b457ac7a5e5c2a0afe16e2ee79b357b23a)

#### Przykład 3: polecenia \multiput i \linethickness

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}}
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C10%29%0A++%5Clinethickness%7B0.05mm%7D%0A++%5Cmultiput%280%2C0%29%281%2C0%29%7B10%7D%7B%5Cline%280%2C1%29%7B10%7D%7D+%0A++%5Cmultiput%280%2C0%29%280%2C1%29%7B10%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A++%5Clinethickness%7B0.5mm%7D%0A++%5Cmultiput%280%2C0%29%285%2C0%29%7B3%7D%7B%5Cline%280%2C1%29%7B10%7D%7D%0A++%5Cmultiput%280%2C0%29%280%2C5%29%7B3%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Przykład środowiska picture LaTeX z poleceniem \multiput](/files/a76feadcc34d6886c3f12475a595def00947e541)

### Inne przykłady

#### Podstawowa krzywa Béziera

Poniższy przykład wykorzystuje `\qbezier` polecenie do rysowania krzywej Béziera:

```latex
\qbezier(1,1)(5,5)(9,0.5)
```

Zwróć uwagę na następujące:

* stronie `\qbezier` polecenie nie jest używane wewnątrz `\put` polecenie
* punkt początkowy krzywej Béziera to `(1,1)`
* punkt końcowy krzywej Béziera to `(9,0.5)`
* punkt kontrolny krzywej Béziera to `(5,5)`
* nie używamy opcjonalnej liczby całkowitej, która określa liczbę punktów użytych do narysowania/utworzenia krzywej Béziera

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(10,5)
\thicklines
\qbezier(1,1)(5,5)(9,0.5)
\put(2,1){{Krzywa Béziera}}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2810%2C5%29%0A%5Cthicklines%0A%5Cqbezier%281%2C1%29%285%2C5%29%289%2C0.5%29%0A%5Cput%282%2C1%29%7B%7BB%C3%A9zier+curve%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Rysowanie krzywej Béziera za pomocą LaTeX](/files/f4231012452854a1847f9ccd6888d796f3ebfc3f)

#### Owale, linie i okręgi

Poniższy przykład demonstruje `\line`, `\circle` i `\oval` polecenia — zwróć uwagę, jak one *jesteś* wszystkie używane wewnątrz `\put{...}` polecenia:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C6%29%0A%5Cput%282%2C2.2%29%7B%5Cline%281%2C0%29%7B6%7D%7D%0A%5Cput%282%2C2.2%29%7B%5Ccircle%7B2%7D%7D%0A%5Cput%286%2C2.2%29%7B%5Coval%284%2C2%29%5Br%5D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Przykład środowiska picture LaTeX](/files/8373458828f59d0668ab20844bfe47cf0fb6f56d)

Poniżej znajduje się opis poleceń:

* `\put(2,2.2){\line(1,0){6}}`: rysuje linię `6` jednostek długości przy użyciu „wektora kierunku” `(1,0)`
* `\put(6,2.2){\oval(4,2)[r]}`: rysuje owal wyśrodkowany w punkcie `(4,2)`. Parametr `[r]` jest opcjonalny, można użyć `r`, `l`, `t` i `b` aby pokazać prawą, lewą, górną lub dolną część owalu.
* `\put(2,2.2){\circle{2}}`: rysuje okrąg wyśrodkowany w punkcie `(2,2.2)` o średnicy `2`.

#### Łączenie linii, okręgów i tekstu

Różne podstawowe elementy można łączyć, aby tworzyć bardziej złożone rysunki. W tym przykładzie kilka linii i okręgów zostało połączonych, aby utworzyć rysunek, wraz z tekstem opisującym punkty:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(12,4)
\thicklines
\put(8,3.3){{\footnotesize $3$-simplex}}
\put(9,3){\circle*{0.1}}
\put(8.3,2.9){$a_2$}
\put(8,1){\circle*{0.1}}
\put(7.7,0.5){$a_0$}
\put(10,1){\circle*{0.1}}
\put(9.7,0.5){$a_1$}
\put(11,1.66){\circle*{0.1}}
\put(11.1,1.5){$a_3$}
\put(9,3){\line(3,-2){2}}
\put(10,1){\line(3,2){1}}
\put(8,1){\line(1,0){2}}
\put(8,1){\line(1,2){1}}
\put(10,1){\line(-1,2){1}}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2812%2C4%29%0A%5Cthicklines%0A%5Cput%288%2C3.3%29%7B%7B%5Cfootnotesize+%243%24-simplex%7D%7D%0A%5Cput%289%2C3%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%288.3%2C2.9%29%7B%24a_2%24%7D%0A%5Cput%288%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%287.7%2C0.5%29%7B%24a_0%24%7D%0A%5Cput%2810%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%289.7%2C0.5%29%7B%24a_1%24%7D%0A%5Cput%2811%2C1.66%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%2811.1%2C1.5%29%7B%24a_3%24%7D%0A%5Cput%289%2C3%29%7B%5Cline%283%2C-2%29%7B2%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%283%2C2%29%7B1%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C0%29%7B2%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C2%29%7B1%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%28-1%2C2%29%7B1%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Przykład środowiska picture LaTeX](/files/0c36428a5ffc4d7f98d97dcdd60c3f4ff3da279d)

Oto podsumowanie niektórych użytych poleceń:

* `\thicklines`: to zwiększa grubość linii. Polecenie `\thinlines` działa odwrotnie.
* `\put(8,3.3){{\footnotesize $3$-simplex}}`: tekst „3-simplex” jest wstawiany w punkcie `(8,3.3)`, rozmiar czcionki jest ustawiany na `\footnotesize`. To samo polecenie służy do opisania każdego punktu.
* `\put(9,3){\circle*{0.1}}`: rysuje wypełnione koło, wyśrodkowane w `(9,3)` o małej średnicy `0.1` (jednostka rysunku), dzięki czemu może być użyte jako punkt.
* `\put(10,1){\line(3,2){1}}`: tworzy linię prostą zaczynającą się w `(10,1)` i rysowaną w kierunku `(3,2)` o długości 1 (jednostki rysunku).

#### Używanie strzałek

Strzałki można także używać wewnątrz `picture` środowiska, więc oto drugi przykład:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.20mm}
\begin{picture}(400,250)
\put(75,10){\line(1,0){130}}
\put(75,50){\line(1,0){130}}
\put(75,200){\line(1,0){130}}
\put(120,200){\vector(0,-1){150}}
\put(190,200){\vector(0,-1){190}}
\put(97,120){$\alpha$}
\put(170,120){$\beta$}
\put(220,195){stan górny}
\put(220,45){stan dolny 1}
\put(220,5){stan dolny 2}
\end{picture}
\end{document}
```

[Otwórz ten przykład w Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+arrows+in+LaTeX+picture+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.20mm%7D%0A%5Cbegin%7Bpicture%7D%28400%2C250%29%0A%5Cput%2875%2C10%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C50%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C200%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%28120%2C200%29%7B%5Cvector%280%2C-1%29%7B150%7D%7D%0A%5Cput%28190%2C200%29%7B%5Cvector%280%2C-1%29%7B190%7D%7D%0A%5Cput%2897%2C120%29%7B%24%5Calpha%24%7D%0A%5Cput%28170%2C120%29%7B%24%5Cbeta%24%7D%0A%5Cput%28220%2C195%29%7Bupper+state%7D%0A%5Cput%28220%2C45%29%7Blower+state+1%7D%0A%5Cput%28220%2C5%29%7Blower+state+2%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Przykład strzałek w środowisku picture LaTeX](/files/c5ddd52731591a4223e370a22d981cc1898c2cc8)

Ta `\vector` polecenie używa tej samej składni co `\line`:

* `\put(120,200){\vector(0,-1){150}}`: rysuje wektor, którego punkt początkowy znajduje się w `(120,200)`, długość wynosi `150` a kierunek rysowania jest `(0,-1)`.

## Dalsza lektura

Więcej informacji znajdziesz w następujących zasobach:

* [Nieoficjalny podręcznik referencyjny LaTeX2e](https://latexref.xyz/picture.html)
* [Nie tak krótki wstęp do LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (zobacz rozdział 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [pytania otagowane `picture-mode` na tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` dokumentacja pakietu](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)
* [Pakiet TikZ](/latex/pl/rysunki-i-tabele/05-tikz-package.md)
* [Pakiet Pgfplots](/latex/pl/specyficzne-dla-dziedziny/08-pgfplots-package.md)
* [Pozycjonowanie obrazów i tabel](/latex/pl/rysunki-i-tabele/02-positioning-images-and-tables.md)
* [Spisy tabel i rysunków](/latex/pl/rysunki-i-tabele/03-lists-of-tables-and-figures.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/pl/rysunki-i-tabele/04-picture-environment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
