Tikz 倾斜角度

Tikz 倾斜角度

我无法正确放置 alpha 角以及该图的其余部分。

诊断

我的最小工作示例(MWE):

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[scale=1]
\fill[white] (-1,-5) rectangle (10,5);
\draw[thin] (0,0) grid (17,5);
\draw[line width=2pt] (0,4)--(15,4);
\draw[decorate,decoration={border,amplitude=0.6cm}] (0,4)--(15,4);
\path 
(3,6.5) node{A} 
(8,4.2) node{B} 
(3,4.2) node{C}
(4,5) node{$\theta$}
(4,4)node{$\vec{F}$};
\begin{scope}[rotate around={-30:(2.69,0)}]
\draw[line width=2pt](-1,5)--(5,6);
\shade[ball color=blue!100!green!150,opacity=5](2,6.02)circle (0.5);
\shade[ball color=blue!100!green!150,opacity=5](8,8.29)circle (0.5);
\end{scope}
\draw[blue] (6.5421,4.449225) arc(91:180:0.4515) node[midway,left]{$\alpha$};
\draw (11.49,4.5)--(15,4.5);

\draw[line width=2pt,rotate around={30:(5,-1)}](13.59,0.77)--(17,0.8);
\end{tikzpicture}
\end{document}

我使用 \documentclass[12pt]{article}

答案1

帮助 OP 构图简单角度的东西

我们所需要的只是选择三个坐标来包围角度——在这种情况下,坐标是B, C, D——在你的代码中,你可以根据需要修改坐标的选择

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{calc} 
\usetikzlibrary{angles,intersections,quotes}
%\usepackage{tkz-euclide}

\begin{document}
    \begin{tikzpicture}
        \draw [blue!70!black, thick]
        (0,0)coordinate[label=-90:A](A)             -- 
            (1,0)coordinate[label=-90:B](B)         -- 
                (10,0) coordinate[label=-90:C](C);
                
        \draw[blue!70!black, thick]
        (B)                                                             --
            +(20:9cm)coordinate[label=90:D](D);
        
        \pic[ draw,
                <->,
                >=stealth,
                red!60!black, 
                "$\alpha$"{fill=red!20},
                inner sep=1pt, 
                circle, 
                angle eccentricity=1.1, 
                angle radius = 20mm] 
                            {angle = C--B--D}; 
        
            \end{tikzpicture}
            \end{document}

输出

在此处输入图片描述

请注意,改变坐标顺序将影响角度——最初的顺序是 CBD,现在改为 DBC

\begin{tikzpicture}
    \draw [blue!70!black, thick]
    (0,0)coordinate[label=-90:A](A)             -- 
        (1,0)coordinate[label=-90:B](B)         -- 
            (10,0) coordinate[label=-90:C](C);
            
    \draw[blue!70!black, thick]
    (B)                                                             --
        +(20:9cm)coordinate[label=90:D](D);
    
    \pic[ draw,
            <->,
            >=stealth,
            red!60!black, 
            "$\alpha$"{fill=red!20},
            inner sep=1pt, 
            circle, 
            angle eccentricity=1.1, 
            angle radius = 20mm] 
                        {angle = D--B--C}; 
    
        \end{tikzpicture}

输出

在此处输入图片描述

另外,对代码进行实验将对\alpha角度的放置提供更多的见解——例如修改上述代码中的eccentricityangle radius

angle eccentricity=-1.1, 
                angle radius = 13mm
                            {angle = D--B--C};

将导致

在此处输入图片描述

希望这有助于构建一个清晰的角度

答案2

这让我想起LaTeX 中的倾斜物体但这个图表不太混乱。

但主要的要点是一样的:不要做 TikZ 可以轻松为您完成的三角学!

除了图片,我们还可以沿路径放置一个常规圆形节点,即使是倾斜的路径,TikZ 也会确保它是切线/平行的。(由于球没有自己的绘制边框,我们可以使用原始路径来\pgflinewidth稍微调整其位置,以便它实际上只接触线。为此,我们还设置outer sep归零或auto,这也确保了F矢量线恰好从球处开始。)

给出重要的坐标名称,然后我们可以angle使用angles图书馆绘制αθ角度,无需进行任何计算。图片为您完成了这些工作。

代码

\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{angles, arrows.meta, decorations.pathreplacing, quotes}
\tikzset{
  ball above the line/.style={
    sloped, allow upside down, above=.5\pgflinewidth, outer sep=+0pt,
    minimum size=1cm, shape=circle, ball color=blue!50},
  border/.style={
    decoration={name=border, amplitude=.6cm, #1},
    postaction={draw, thin, decorate}}}
\begin{document}
\begin{tikzpicture}[>=Latex, angle radius=1cm, angle eccentricity=1.25]
\draw[line width=2pt, border=reverse path]
  (3, 4) coordinate (left)
  -- coordinate["$B$"] (B)
     node[ball above the line, near end] (right ball) {}
  (15,4) coordinate (right);
\draw[thick]
  (3, 6.5) coordinate["$A$"] (A)
  -- node[ball above the line, near start] (left ball) {}
  (B);

\path[at end]
  (right ball.east) coordinate (rb)
                    edge[->, "$\vec F$"] coordinate (rb-tr) +(30:2)
                    edge[dotted]         coordinate (rb-r)  +( 0:2);

\pic["$\alpha$", draw] {angle=A--B--left};
\pic["$\theta$", draw] {angle=rb-r--rb--rb-tr};
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容