linha tracejada no tikz

linha tracejada no tikz

Eu escrevi o código para esta figura, como posso adicionar esses dois travessões a ela insira a descrição da imagem aqui

\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}

Responder1

Aqui está uma maneira de fazer isso.

Principalmente quando você é iniciante no Tikz sugiro fazer passo a passo, ver meus números nos comentários e passar deimperfeitaparabem (o suficiente).

Algumas observações que vão além dos meus comentários:

  • usar coordenadas absolutas dá a você mais controle como iniciante; mais tarde você pode ir para a positioningbiblioteca ou outras ferramentas
  • sempre comece simples, por exemplo \draw (A) -- (B);(reto), refine mais tarde, por exemplo \draw (A) |- (B);(conexão vertical e depois horizontal)
  • use estilos para tornar seu código mais legível
  • introduzir pontos intermediários, por exemplo, relativos +()ou como nova ++()coordenada absoluta
  • Tikz usa o conceito de caminho, começando sintaticamente com \, terminando com ;e realizando quaisquer ações intermediárias
  • é por isso que você pode colocar node(sem \!) antes que o caminho termine para colocar um rótulo
  • usar anchoré bom para mudar a referência de nóscenter
  • coordenadas polares podem ser suas amigas, seja como uma coordenada como (45:1)ou em torno de uma forma de nós(A.north) == (A.90)

Boa sorte + procure esses comandos notikz-manualem paralelo.

resultado

\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}

informação relacionada