我目前正在使用 tikz 来描述理论中使用的定律。此方法通过在不同线条上断点来描述子区域的构造。
其中,P1、P2、P2分别是在L1、L2、L3线上随机产生的断点。
这对我来说是难点。我目前已经完成了这部分:
\begin{figure}[h]
\begin{center}
\begin{tikzpicture}
\draw (0,0) --++ (3,-3) --++ (3.5,3.5) --++ (-3,3) --cycle;
\draw (0.5,1.5) to[dashed] (1,1) -- (4,-2) to[dashed] (4.5,-2.5)node[below right]{$L_1$} ;
\draw (1.5,2.5) to[dashed] (2,2) -- (5,-1) to[dashed] (5.5,-1.5)node[below right]{$L_2$} ;
\draw (2.5,3.5) to[dashed] (3,3) -- (6,0) to[dashed] (6.5,-0.5)node[below right]{$L_3$} ;
\end{tikzpicture}
\end{center}
\end{figure}
但我不知道如何用随机变量创建 Pn 点。当然,我考虑了 Ln 线的插值表达式,并将断点 Pn 放在这条线上,但我不知道怎么做。
第二个小问题是关于虚线的,我目前不知道如何绘制一条线,先是虚线,然后是实线,然后是虚线。
所有线 + 面积等的陈述都依赖于 Pn 的随机放置。你能帮我创建这张图片吗?
谢谢
答案1
我设法绘制了整个图片,然后将其旋转 -45 度。这样你就可以使用 arandom()
作为x
坐标:
\documentclass[tikz,margin=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[line width = .8pt]
\begin{scope}[rotate=-45]
\draw (0,0) rectangle (-4,5.5);
\coordinate (L1) at (0,1.5);
\coordinate (L2) at (0,3);
\coordinate (L3) at (0,4.5);
\coordinate (L4) at (0,6);
\coordinate (p0) at (-4,0);
\pgfmathparse{4 * random()}
\coordinate (p1) at (L1-|-\pgfmathresult,0);
\pgfmathparse{\pgfmathresult * (1-random())}
\coordinate (p2) at (L2-|-\pgfmathresult,0);
\pgfmathparse{\pgfmathresult * (1-random())}
\coordinate (p3) at (L3-|-\pgfmathresult,0);
\pgfmathparse{\pgfmathresult * (1-random())}
\coordinate (p4) at (L4-|-\pgfmathresult,0);
\foreach \i [remember=\i as \j (initially 0)] in {1,2,3,4}{
\draw (p\j) -- (p\j|-p\i) edge[dashed] ++ (180:0.75) -- (p\i);
\draw (p\i) -- (L\i);
\draw[dashed] (L\i) -- ++(0:0.75) node[pos=1.5]{\( L\i \)};
\path (p\j) -- (L\i) node[midway]{\( A_\i \)};
\draw (p\i) circle (0.5mm) node[above=1mm]{\( P_\i \)};
}
\draw (p4) -| (0,5.5);
\draw[<->] (p1) -- node[auto]{\( x \)} (p1|-0,0);
\draw[<->] ([yshift=-2.5mm]p1) -- node[auto,swap]{\( y \)} ([yshift=-2.5mm]p1-|0,0);
\end{scope}
\end{tikzpicture}
\end{document}
其结果是(您可能需要进行一些编译才能获得良好的结果random()
):
小更新:
这样,就可以使用前一行的某个部分,而不必等待random()
创建一个好的值。我还删除了行 L4,因为示例图像中没有绘制该行。
\documentclass[tikz,margin=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[line width = .8pt]
\begin{scope}[rotate=-45]
\draw (0,0) rectangle (-4,5.5);
\coordinate (L1) at (0,1.5);
\coordinate (L2) at (0,3);
\coordinate (L3) at (0,4.5);
\coordinate (L4) at (0,6);
\coordinate (p0) at (-4,0);
% \pgfmathparse{4 * random()}
\pgfmathparse{4 * 0.6}
\coordinate (p1) at (L1-|-\pgfmathresult,0);
% \pgfmathparse{\pgfmathresult * (1-random())}
\pgfmathparse{\pgfmathresult * 0.5}
\coordinate (p2) at (L2-|-\pgfmathresult,0);
% \pgfmathparse{\pgfmathresult * (1-random())}
\pgfmathparse{\pgfmathresult * 0.4}
\coordinate (p3) at (L3-|-\pgfmathresult,0);
% \pgfmathparse{\pgfmathresult * (1-random())}
\pgfmathparse{\pgfmathresult * 0.75}
\coordinate (p4) at (L4-|-\pgfmathresult,0);
\foreach \i [remember=\i as \j (initially 0)] in {1,2,3,4}{
\draw (p\j) -- (p\j|-p\i) edge[dashed] ++ (180:0.75) -- (p\i);
\path (p\j) -- (L\i) node[midway]{\( A_\i \)};
\draw (p\i) circle (0.5mm) node[above=1mm]{\( P_\i \)};
}
\foreach \i in {1,2,3}{
\draw (p\i) -- (L\i);
\draw[dashed] (L\i) -- ++(0:0.75) node[pos=1.5]{\( L\i \)};
}
\draw[dashed] (p4) -| (0,5.5);
\draw[<->] (p1) -- node[auto]{\( x \)} (p1|-0,0);
\draw[<->] ([yshift=-2.5mm]p1) -- node[auto,swap]{\( y \)} ([yshift=-2.5mm]p1-|0,0);
\end{scope}
\end{tikzpicture}
\end{document}