如何使用互连在精确的位置绘制精确的形状?

如何使用互连在精确的位置绘制精确的形状?

我正在尝试将框图转换为乳胶源。获得精确位置的精确形状并在它们之间绘制互连的最佳方法是什么?形状只是矩形、圆形和椭圆形。没有什么太复杂的自定义。我尝试了“ nodedraw”方法,但乳胶似乎自己决定了大小。

编辑:这是我尝试过的:

\documentclass[tikz,14pt,border=10pt]{standalone}
\usepackage{textcomp}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{tikzpicture}[auto, thick, node distance=1px, >=triangle 45]
\node at (27, 14)[rectangle, minimum height=40pt]{A};
\node at (10, 17)[circle]{B};
\node at (40, 12)[circle]{C};
\node at (29, 25)[circle]{D};
\node at (11, 30)[circle]{E};

\end{tikzpicture}
\end{document}

答案1

默认情况下不绘制边框node。如果您希望绘制边框,请添加drawnode选项中,即

\node [draw] {a};

我还建议您style为不同的形状定义 s。这样可以更轻松地修改图表,因为您只需修改样式,而不是每个节点的设置。您可以使用

\tikzset{NameOfStyle/.style={<list of settings>}}

下面是一个例子。

其他一些评论:

  • 在默认类中,14pt不是一个有效的选项,您可以在 和 之间进行选择10pt11pt由于12pt默认情况下standalone用作article基类,因此您会收到警告

    LaTeX Warning: Unused global option(s):
        [14pt].
    
  • 在某种程度上,这或许是一个偏好问题,但手册中描述了节点的选项( 中的部分[])应该直接位于 之后node,而不是像您的代码中那样位于 之后。不过,它仍然适用于您的放置。手册中写道:

     \path node <foreach statements>[<options>](<name>)at(<coordinate>){<node contents>} ...;
    
  • 尽管该arrows库仍然有效,但它已被弃用,取而代之的是较新的arrows.meta库,该库在手册的第 16.5 节中进行了描述。

  • 您使用的键node distance仅在您将一个节点相对于另一个节点放置时才有意义。为此,添加

    \usetikzlibrary{positioning}
    

    然后如果你有\node (a) {aaaa};,你可以说

     \node[right=of a] {b};
    

    将第二个节点放置在node distance第一个节点右侧定义的距离处。

代码输出

\documentclass[tikz,12pt,border=10pt]{standalone}
\usepackage{textcomp}
\usetikzlibrary{shapes,arrows.meta}
\tikzset{
  MyBox/.style={draw,minimum height=40pt,minimum width=2cm},
  MyCirc/.style={draw,circle,minimum size=50pt}
}
\begin{document}
\begin{tikzpicture}[auto, thick, node distance=1px, >=Triangle]
\node [MyBox] (a) at (27, 14) {A};
\node [MyCirc] (b) at (10, 17) {B};
\node [MyCirc] (c) at (40, 12) {C};
\node [MyCirc] (d) at (29, 25) {D};
\node [MyCirc] (e) at (11, 30) {E};

\draw (a) -- (b) -- (d) -- (c) -- (e);
\end{tikzpicture}
\end{document}

答案2

以下 MWE 对我有用。我使用最小高度和宽度以及最小文本宽度。

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}[
        block/.style={rectangle, thick, draw, minimum height=9mm, minimum width=10mm,text width=15mm,align=center},
        connection/.style={->,thick},]
        \node[block] (A)    at (1.5,0)  {Block A};
        \node[block] (B)    at (3.5,0)  {Block B};

        \draw[connection] (A.east) -- (B.west);
    \end{tikzpicture}
\end{document}

MWE 的输出

相关内容