在此图中,我想删除我标记的箭头。我该怎么办?我在下面附上了我的代码:
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{arrows,calc,positioning}
\tikzset{
block/.style = {draw, rectangle,
minimum height=1cm,
minimum width=2cm},
input/.style = {coordinate,node distance=1cm},
out/.style = {coordinate,node distance=4cm},
output/.style = {coordinate,node distance=1cm},
arrow/.style={draw, -latex,node distance=2cm},
pinstyle/.style = {pin edge={latex-, black,node distance=2cm}},
sum/.style = {draw, circle, node distance=1cm},
point/.style = {draw, fill=black, circle, minimum size=0.08mm, node distance=1.5cm, inner sep=0pt},
}
\begin{document}
\begin{center}
\begin{tikzpicture}[auto,>=latex']
% Start by placing nodes
\node [input, name=input] {};
\node [block, right=1cm of input] (controller) {{$?$}};
\node [block, right=1cm of controller] (system) {$\mathcal {A},\mathcal {B}$};
\node [block, right=1cm of system] (C) {$\mathcal {C}$};
\node [output, right=1cm of C] (output) {};
%\node [block, below=1cm of C] (L) {{$L$}};
\node [point, below =1cm of C] (point0){};
% Connect away!
\draw [->] ([xshift=-1cm] input) -- (input) -- node {$u$} (controller);
\draw [->] (controller) -- (system);
\draw [->] (system) -- (C);
\draw [->] (C) -- node [name=y] {$y$} (output) -- ([xshift=1cm] output);
\draw [->] (system) -- node [name=x] {$x$} (C);
\draw [->] (output) |- node[name=u] {} (point0);
\draw [->] (point0) -- (input |- point0) |- ([yshift=-0.5cm] controller);
\end{tikzpicture}
\end{center}
\end{document}
答案1
分析:
问题出现在最后两个\draw
语句中:
- 你引入一个中间点
(point0)
- 没关系,因为有时没有其他选择
- 然而,
\draw[->] ...;
随后\draw[->] ...;
创建的是工件。
解决方案:
将两个语句合并为一个:
- 绘制直到(point0)
\draw [->] (output) |- node[name=u] {} (point0)
- 然后从同一位置重新开始并完成路径,如下所示:
(point0) -- (input |- point0) |- ([yshift=-0.5cm] controller);
- 结果是一个很长的语句:
\draw [->] (output) |- node[name=u] {} (point0)(point0) -- (input |- point0) |- ([yshift=-0.5cm] controller);
这是一种方法。
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{arrows,calc,positioning}
\tikzset{
block/.style = {draw, rectangle,
minimum height=1cm,
minimum width=2cm},
input/.style = {coordinate,node distance=1cm},
out/.style = {coordinate,node distance=4cm},
output/.style = {coordinate,node distance=1cm},
arrow/.style={draw, -latex,node distance=2cm},
pinstyle/.style = {pin edge={latex-, black,node distance=2cm}},
sum/.style = {draw, circle, node distance=1cm},
point/.style = {draw, fill=black, circle, minimum size=0.08mm, node distance=1.5cm, inner sep=0pt},
}
\begin{document}
\begin{center}
\begin{tikzpicture}[auto,>=latex']
% Start by placing nodes
\node [input, name=input] {};
\node [block, right=1cm of input] (controller) {{$?$}};
\node [block, right=1cm of controller] (system) {$\mathcal {A},\mathcal {B}$};
\node [block, right=1cm of system] (C) {$\mathcal {C}$};
\node [output, right=1cm of C] (output) {};
%\node [block, below=1cm of C] (L) {{$L$}};
\node [point, below =1cm of C] (point0){};
% Connect away!
\draw [->] ([xshift=-1cm] input) -- (input) -- node {$u$} (controller);
\draw [->] (controller) -- (system);
\draw [->] (system) -- (C);
\draw [->] (C) -- node [name=y] {$y$} (output) -- ([xshift=1cm] output);
\draw [->] (system) -- node [name=x] {$x$} (C);
\draw [->] (output) |- node[name=u] {} (point0)(point0) -- (input |- point0) |- ([yshift=-0.5cm] controller);
\end{tikzpicture}
\end{center}
\end{document}