在不同tikz圖片的兩個(或多個)節點之間繪製圓形連接條

在不同tikz圖片的兩個(或多個)節點之間繪製圓形連接條

我試圖找到與這個問題盡可能相同的東西,但沒有找到。如果是這樣,請告訴我。我想透過圓形連接欄連接位於不同tikzpicture環境中的兩個節點。預設情況下,連接條碼應該靠近最後聲明的節點的 tikzpicture 環境,或隔離到單一 tikzpicture,但絕不是第一個聲明的節點的 tikzpicture 環境,請參見情況 1 和 2。良好,但在這兩種情況下,節點都不會保留在圓形連接條邊緣兩端的原始位置,這是主要問題。另外,如果有一個解決方案,它適用於使用\newpage?時的情況 3。

情況1:

在此輸入影像描述

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

案例2:

在此輸入影像描述

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

情況 3(帶有\newpage):

在此輸入影像描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

正如@Henri Menke 所指出的,我嘗試使用remember pictureoverlay。我不確定如何使用這些參數,但畢竟,我無法將節點保留在其兩端或circle connection bar.使用這些參數時我是否做錯了什麼?

在此輸入影像描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node [remember picture,overlay]
(energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

根據 @Henrique Menke 關於上述嘗試的註釋,我已經能夠將節點放置在末尾circle connection bar,但無法保持它們的初始位置,儘管我嘗試將兩個節點的座標更改得越來越遠。檢查它是否真的有效或“視錯覺”。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}[remember picture]

        \node [remember picture] (energy1) at (30:30cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}[remember picture]
        \node [remember picture] (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]

\draw[circle connection bar,remember picture, overlay]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

在此輸入影像描述

答案1

您可以在單一 tikz 環境中繪製所有內容,而無需進行連接不同環境的艱苦工作。定位標籤的選項在這裡會有所幫助。這是一個例子。

唯一的問題是繪圖和標籤的大小,這可以透過文字縮放來處理。 (或許)

\documentclass{standalone} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1)[label=right:motorcycle.1] at (30:10cm){};
\node (energy2)[label=left:motorcycle.2] at (90:10cm){};
\draw[circle connection bar]
(energy1)%
edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]%
(energy2);
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容