我怎样才能修复我的 tikz 圆圈来做我想做的事情

我怎样才能修复我的 tikz 圆圈来做我想做的事情

下面是我的代码的最小示例。我希望虚线保持在圆圈内,而不是像现在这样超出圆圈,但我不知道如何做到这一点。

\documentclass[paper=a4, fontsize=12pt]{scrartcl} 

\usepackage[T1]{fontenc} 
\usepackage{amsmath,amsfonts,amsthm} % Maths  
\usepackage{graphicx} 
\usepackage{float}

\usepackage{tikz}
\usetikzlibrary{arrows,%
                plotmarks}
\begin{document}

 \begin{figure}[H]
 \centering
   \begin{tikzpicture}
    % Axis
    \draw[thick,->,black] (-3,0)--(3,0) node[below] {$k_x$}; % x axis
    \draw[thick,->,black] (0,-3)--(0,3) node[left] {$k_y$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \draw[ultra thick,blue,dashed] (0,0) -- (3,3);

   \end{tikzpicture}
\end{figure}
\end{document}

圆圈

我还想放置等距点作为圆圈的背景。我不知道从哪里开始!有人能帮忙吗?

答案1

解释

改用极坐标。由于(3,3)与 x 轴正部分成 45 度角,并且您使用 2.5 厘米作为半径,因此您可以将坐标指定为(45:2.5cm),这隐含地意味着(canvas polar cs:angle=45,radius=2.5cm)。您可以在pgf 手册,2.10 版第 125 页。

代码

%\documentclass[paper=a4, fontsize=12pt]{scrartcl} 
\documentclass[preview,border=5]{standalone}

\usepackage[T1]{fontenc} 
\usepackage{amsmath,amsfonts,amsthm} % Maths  
\usepackage{graphicx} 
\usepackage{float}

\usepackage{tikz}
\usetikzlibrary{arrows,%
                plotmarks}
\begin{document}

 \begin{figure}[H]
 \centering
   \begin{tikzpicture}
    % Axis
    \draw[thick,->,black] (-3,0)--(3,0) node[below] {$k_x$}; % x axis
    \draw[thick,->,black] (0,-3)--(0,3) node[left] {$k_y$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \draw[ultra thick,blue,dashed=on 2pt off 3pt] (0,0) -- (45:2.5cm); % Use the polar coordinate (<angle>:<length>) instead

   \end{tikzpicture}
\end{figure}
\end{document}

输出

在此处输入图片描述

编辑

我没有看到你的第二个问题。不过我建议你以后把问题限制在一个帖子里。请参见下面的修改后的代码。一些解释:

  • \pgflinewidthline width这里给出的 key 的值0.5pt
  • 我已经添加fill=white到轴标签的节点以将它们与虚线区分开来,并增加了一些距离以免覆盖箭头。

%\documentclass[paper=a4, fontsize=12pt]{scrartcl} 
\documentclass[preview,border=5]{standalone}

\usepackage[T1]{fontenc} 
\usepackage{amsmath,amsfonts,amsthm} % Maths  
\usepackage{graphicx} 
\usepackage{float}

\usepackage{tikz}
\usetikzlibrary{arrows,%
                plotmarks,patterns}
\begin{document}

 \begin{figure}[H]
 \centering
   \begin{tikzpicture}
   \draw [line width=0.5pt, line cap=round, dash pattern=on 0pt off 2\pgflinewidth] (-3,-3) grid (3,3);
    % Axis
    \draw[thick,->,black] (-3,0)--(3,0) node[below=1.75pt, fill=white] {$k_x$}; % x axis
    \draw[thick,->,black] (0,-3)--(0,3) node[left=1.75pt, fill=white] {$k_y$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \draw[ultra thick,blue,dashed=on 2pt off 3pt] (0,0) -- (canvas polar cs:angle=45,radius=2.5cm);
   \end{tikzpicture}
\end{figure}
\end{document}

参考

TikZ 中带有圆点的虚线了解在 中制作虚线的不同方法tikz

在此处输入图片描述

答案2

除了使用极坐标或使用三角函数计算虚线终点的坐标外,另一种选择是使用裁剪。在这种情况下,这可能是一种过度的做法,但在更复杂的情况下可能会有用:

\documentclass[paper=a4, fontsize=12pt]{scrartcl} 

\usepackage[T1]{fontenc} 
\usepackage{amsmath,amsfonts,amsthm} % Maths  
\usepackage{graphicx} 
\usepackage{float}

\usepackage{tikz}
\usetikzlibrary{arrows,%
                plotmarks}
\begin{document}

 \begin{figure}[H]
 \centering
   \begin{tikzpicture}
    % Axis
    \draw[thick,->,black] (-3,0)--(3,0) node[below] {$k_x$}; % x axis
    \draw[thick,->,black] (0,-3)--(0,3) node[left] {$k_y$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \begin{scope}
       \draw[clip] (0,0) circle (2.5cm);
       \draw[ultra thick,blue,dashed] (0,0) -- (3,3);
    \end{scope}
   \end{tikzpicture}
\end{figure}
\end{document}

请注意,圆圈被绘制了两次,第二次是在环境内scope使用该clip选项。这将导致此环境中的所有内容都被剪裁到圆圈内。

相关内容