
Я написал код для этой фигуры, как мне добавить к ней эти две черточки?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,fit}
\usetikzlibrary{arrows,calc,positioning}
\usetikzlibrary{shapes,arrows,positioning,calc}
\begin{document}
\newlength\estilength
\settowidth\estilength{$estimator$}
\tikzset{
block/.style = {draw, fill=white, rectangle, minimum height=3em, minimum width=3em,text width=\estilength,align=center},
tmp/.style = {coordinate},
sum/.style= {draw, fill=white, circle, node distance=1cm},
input/.style = {coordinate},
output/.style= {coordinate},
pinstyle/.style = {pin edge={to-,thin,black}
},
point/.style = {draw, fill=black, circle, minimum size=0.8mm, node distance=1.5cm, inner sep=0pt},
dashed node/.style={draw,dashed,inner sep=7.5pt,rounded corners},
}%
\begin{tikzpicture}[auto, node distance=15mm,>=latex']
\node [input, name=input] {};
\node [block, right=of input] (plant) {$controller$};
\end{tikzpicture}
\end{document}
решение1
Вот как это сделать.
Особенно если вы новичок в Tikz, я предлагаю делать это шаг за шагом, смотрите мои цифры в комментариях и переходите отнесовершенныйкхорошо (достаточно).
Некоторые замечания, выходящие за рамки моих комментариев:
- использование абсолютных координат дает вам больше контроля как новичку; позже вы можете перейти к
positioning
библиотеке или другим инструментам - всегда начинайте с простого, например
\draw (A) -- (B);
(прямое), затем уточняйте, например\draw (A) |- (B);
(вертикальное, затем горизонтальное соединение) - используйте стили, чтобы сделать ваш код более читабельным
- ввести промежуточные точки, например, относительные
+()
или как новые абсолютные++()
координаты - Tikz использует концепцию пути, начиная синтаксически с
\
, заканчивая;
и выполняя любые действия между ними - вот почему вы можете поставить
node
(без\
!) перед тем, как путь будет закончен, чтобы разместить метку - использование
anchor
удобно для изменения ссылки от узловcenter
- Полярные координаты могут быть вашим другом, либо как координаты типа
(45:1)
, либо вокруг формы узлов(A.north) == (A.90)
Удачи + посмотрите эти команды вtikz-руководствов параллели.
\documentclass[10pt,border=3mm,tikz]{standalone}
% ~~~ (4) replace arrow tip ~~~~~~~~~~
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[ % ~~~ (2) doing some style ~~~
blk/.style={draw,minimum height=1cm,minimum width=3cm},
LL/.style={line width=3pt, draw=blue!70!green!40},
>={Triangle}, % ~~~ (4) replace arrow tip ~~~~~~~~~~
]
% ~~~ (1) putting a node ~~~~~~~~
\node[blk] (C) at (0,0) {controller};
% ~~~ (3) drawing the blue line ~~~~~~
\draw[->,LL] (6,1.5) -| (C);
% ~~~ (5) left indicator ~~~~~~~~~~~~
\draw[dashed] (C.120) -- ++(100:3) -- +(-4,0)
node[anchor=south west] {distributed controller};
% ~~~ (6) right indicator ~~~~~~~~~~~~
\draw[dashed] (2,1.5) -- ++(45:2) -- +(4,0)
node[anchor=south east] {communication topology}
node[anchor=north east,pos=.6] {delay}
;
\end{tikzpicture}
\end{document}