2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:06 


28/11/11
2884
Можно ли получить часть затеханной картинки изнутри теха?

Например, такой код:

Код:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}

\begin{document}

\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]

\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]

  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};

  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
 
\end{tikzpicture}

\end{document}


даёт картинку

Изображение

а нужна только часть; навроде

Изображение

Пример, понятное дело, от балды. Но, вообще, можно ли подобное сделать (срендерить только прямоугольный участок tikzpicture), и как? На SE ответа не нашёл.

 Профиль  
                  
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:35 
Заслуженный участник
Аватара пользователя


31/01/14
11348
Hogtown
longstreet в сообщении #972355 писал(а):
Но, вообще, можно ли подобное сделать (срендерить только прямоугольный участок tikzpicture), и как? На SE ответа не нашёл.


Сделаем вот что

Используется синтаксис LaTeX
\draw [step=.1, ultra thin] (-1,-1) grid (2,3);
\foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};
\foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};


После этого Вы определяете, что хочется отрезать (помните, что цифирки масштабированы), и примерка

Используется синтаксис LaTeX
\draw [red] (-.3,-.2) rectangle (2.5,1);


и заменяете \draw на \clip и выбрасываете те 3 линии.

 Профиль  
                  
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:55 


28/11/11
2884
Идея с примеркой по сетке изящна, спасибо большое за совет!

Далее, до замены draw на clip всё хорошо, но с этой заменой получаю
Цитата:
Package tikz Error: Extra options not allowed for clipping path command.. \clip [red] (-.3,-.2) rectangle (2.5,1);

За лишнюю опцию я посчитал (или ошибочно посчитал?) [red], и оставил
Код:
\clip (-.3,-.2) rectangle (2.5,1);

но результат тот же, что и вообще без этой строчки (исходная картинка полностью, на разлинованном листе с красными делениями и их подписями).

-- 01.02.2015, 22:57 --

Код полностью:

(Оффтоп)

Код:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}



\begin{document}

\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]

\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]

  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};

  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
 
 
  \draw [step=.1, ultra thin] (-1,-1) grid (2,3);
  \foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};
  \foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};
 
  \clip (-.3,-.2) rectangle (2.5,1);
\end{tikzpicture}

\end{document}

 Профиль  
                  
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 23:17 
Заслуженный участник
Аватара пользователя


31/01/14
11348
Hogtown
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]
\clip (-.3,-.2) rectangle (2.5,1); % clip до того, что обрезается
\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]
  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};
  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
% \draw [step=.1, ultra thin] (-1,-1) grid (2,3); % А это уже не нужно—после примерки
%  \foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};% А это уже не нужно—после примерки
%  \foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};% А это уже не нужно—после примерки
\end{tikzpicture}
\end{document}


-- 01.02.2015, 15:19 --

Если же надо ограничить действие \clip то


Используется синтаксис LaTeX
\begin{scope}
\clip ……
……...
……..
\end{scope}

 Профиль  
                  
 
 Re: как затехать только часть tikzpicture?
Сообщение02.02.2015, 01:46 


28/11/11
2884
Red_Herring, огромное спасибо: Ваш результат лучше всех моих ожиданий!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group