如何在此 tikz 程式碼中移動圓圈的位置

如何在此 tikz 程式碼中移動圓圈的位置

我想減少此程式碼中標題和圓圈之間的空間。我還需要一些建議來使這段程式碼更有效率

\documentclass{article} \usepackage{tikz} \usetikzlibrary{angles,quotes}    
\def\myrad{3cm}% radius of the circle \def\myang{60}% angle for the arc    
\begin{document}    
\def\myrad{1.5cm}% radius of the circle
\def\myang{45}% angle for the arc

\begin{tikzpicture}
% the origin
\coordinate (O) at (0,0);

% the box for deterministic part
\draw [fill=blue!05!white,dashed] (-4,-4) rectangle (4,4);
\draw [draw=none,node font=\LARGE] (-4,3) rectangle (4,4) node[midway] 
{Deterministic};

% the circle and the dot at the origin
\draw (O) node[circle,inner sep=1.5pt,fill] {};
\draw [black!25,thick] circle [radius=\myrad];


 % the ``\theta'' arc
\draw  (\myrad,0) coordinate (xcoord) -- 
        node[midway,below] {$r=1$} (O) -- 
       (\myang:\myrad) coordinate (slcoord)
         pic [draw,thick,->,>=stealth,angle radius=1cm,"$\theta$"] {angle = xcoord--O--slcoord};
 % the outer ``s'' arc
\draw (\myrad,0) arc[start angle=0,end angle=\myang,radius=\myrad] {};
\node[draw=none,text width=4cm, font=\Large,align=center] at (0.25,-3){$0\leq \boldsymbol{\theta} \leq \pi/4$\vspace{2mm}$x=\cos(\theta_i)$\\$y=\sin(\theta_i)$};        
\end{document}

答案1

在此輸入影像描述

您的 MWE 有一些錯誤:

  • 缺少包裹amsmatmathtools
  • 遺失的\end{tikzpicture}

添加tikz庫後backgrounds,我重寫了您的 MWE fit,如下所示:positioningscopes

\documentclass{article} 
\usepackage{mathtools}
\usepackage{tikz} 
\usetikzlibrary{angles, backgrounds, fit, quotes, positioning, scopes}

\begin{document}
    \begin{center}
    \begin{tikzpicture}[
           node distance = 5mm,
  my angle/.style = {draw, thick, -stealth, 
                     angle radius=1cm,"$\theta$"}
                        ]
\def\myrad{1.5cm}% radius of the circle
\def\myang{45}% angle for the arc
% the origin
\node (C) [circle,draw=red, minimum size=2*\myrad] {};
\node     [circle, inner sep=1pt, fill] {};
% angle
\draw[thick]
    (C.center) -- node[below] {$r=1$} (0:\myrad)    coordinate (A)
               arc (0:45:1.5)               coordinate (B)
               -- cycle;
\draw   pic [my angle] {angle = A--C--B};
% box for deterministic part
\node (D) [above=of C, font=\Large] {Deterministic};

% math
\node (E) [below=of C, font=\Large] {%
    $\begin{aligned}
    0 & \boldsymbol{\theta} \leq \pi/4  \\
    x & = \cos(\theta_i)            \\
    y & =\sin(\theta_i)
    \end{aligned}$};
% background rectangle
\scoped[on background layer]
    \node [draw, dashed, fill=gray!20, inner xsep=11mm,
           fit=(C) (D) (E)] {};
    \end{tikzpicture}
    \end{center}
\end{document}

圖像元素的所有位置現在都是相對的,因此您可以集中控制節點之間的距離(通過node distance)和圖像元素的大小。上面的程式碼可能比 MWE 中的程式碼稍微短一些。

我不清楚為什麼方程式用\theta粗體顯示,而不是圖像。我認為你應該boldsymbol在方程式中刪除。方程式現在處於amsmath( mathtools) 環境aligned。我更喜歡居中,而不是刪除方程式中的&符號並aligned替換為gathered

如您所見,圖像的樞軸是 Circle C。然後相對於它畫出圓圈「斬」和角度,上面是圖像標題,下面是方程式。背景矩形是真的背景並最後繪製。

附錄: 為圓形和角度區域新增顏色。希望我正確理解你的意思:)

在此輸入影像描述

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{angles, backgrounds, fit, quotes, positioning, scopes}

\begin{document}
    \begin{center}
    \begin{tikzpicture}[
           node distance = 5mm,
  my angle/.style = {draw, thick, -stealth,
                     angle radius=1cm,"$\theta$"}
                        ]
\def\myrad{1.5cm}% radius of the circle
\def\myang{45}% angle for the arc
% the origin
\node (C) [circle, draw=red, fill=red!10, minimum size=2*\myrad] {};% added fill, color is red!10. you can change color according to your taste/wish
\node     [circle, inner sep=1pt, fill] {};
% angle
\draw[thick, fill=white] % added fill, color is white. you can change color according to your taste/wish
    (C.center) -- node[below] {$r=1$} (0:\myrad)    coordinate (A)
               arc (0:45:1.5)               coordinate (B)
               -- cycle;
\draw   pic [my angle] {angle = A--C--B};
% box for deterministic part
\node (D) [above=of C, font=\Large] {Deterministic};

% math
\node (E) [below=of C, font=\Large] {%
    $\begin{aligned}
    0 & \leq \boldsymbol{\theta} \leq \pi/4  \\
    x & = \cos(\theta_i)            \\
    y & = \sin(\theta_i)
    \end{aligned}$};
% background rectangle
\scoped[on background layer]
    \node [draw, dashed, fill=blue!10, inner xsep=11mm,
           fit=(C) (D) (E)] {};
    \end{tikzpicture}
    \end{center}
\end{document}

相關內容