我想要绘制附件中下面的图。
我已经有了图中两条线的代码:
\documentclass[a4paper,12pt,reqno,english]{article}
\usepackage{tikz}
\usetikzlibrary{braids}
\begin{document}
\begin{tikzpicture}[scale=4, every node/.style={scale=4}]
\pic[
rotate=0,
braid/.cd,
every strand/.style={ultra thick},
strand 1/.style={red},
strand 2/.style={blue},
] {braid={s_1}};
\end{tikzpicture}
\end{document}
但我不知道如何将这些线与平面组合起来。图像文件中的符号 C 表示复数集。你能帮我吗?
答案1
对于辫子b您可以访问 strand 的开始和结束我通过坐标和。此坐标和 pic 定义的其他坐标在第 2.2 节中介绍(b-i-s)
(b-i-e)
图书馆手册。
对于起点和终点处的平面,我们可以使用这些坐标并在其周围绘制一个(倾斜的)矩形。对于底部的那个,我使用库backgrounds
及其on background layer
钥匙它提供了可以轻松绘制股线后面的矩形的功能。
在其他点添加平面将是一个有趣的后续问题。我的后续问题是:这些平面是必要的吗?看看手册中的一些示例。也许一行就够了。
该图片还提供了经过一些调整后可能可以使用的楼层……
代码
\documentclass[a4paper, 12pt]{article}
\usepackage{tikz, amssymb} % amssymb for \mathbb
\usetikzlibrary{braids, backgrounds}
\tikzset{
rectangle around/.style={
thick, draw, fill=lightgray, xslant=1, fill opacity=.75, rounded corners=+5pt,
to path={
([shift={(-.3,-.2)}]\tikztostart) rectangle node[at end, right]{$#1$}
([shift={( .3, .2)}]\tikztotarget) \tikztonodes}}}
\begin{document}
\begin{tikzpicture}[pics/braid/.append style={/tikz/scale=3}, scale=3]
\pic[
rotate=0,
braid/.cd,
every strand/.style={ultra thick},
strand 1/.style={red},
strand 2/.style={blue},
] (b) {braid = s_1};
\path[rectangle around=\mathbb C] (b-1-s) to (b-2-s);
\scoped[on background layer]
\path[rectangle around=\mathbb C] (b-2-e) to (b-1-e);
\end{tikzpicture}
\end{document}
输出
答案2
像这样:
代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[blue] (4,1)--(2,-5) node[midway,fill=white] () {\;};
\draw[red] (2,1)--(4,-5);
\filldraw[gray!30,draw,opacity=.7] (0,0)--(5,0)--(6,2)--(1,2)
--cycle;
\filldraw[gray!30,draw,opacity=.7] (0,-6)--(5,-6)--(6,-4)--(1,-4)
--cycle;
\node at (6.3,2) () {$\pi_1$};
\node at (6.3,-4) () {$\pi_2$};
\end{tikzpicture}
\end{document}
EDIT
:我稍微改变了一下前面代码的顺序
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[gray!30,draw,opacity=.7] (0,-6)--(5,-6)--(6,-4)--(1,-4)
--cycle;
\draw[blue] (4,1)--(2,-5) node[midway,fill=white] () {\;};
\draw[red] (2,1)--(4,-5);
\filldraw[gray!30,draw,opacity=.8] (0,0)--(5,0)--(6,2)--(1,2)
--cycle;
\node at (6.3,2) () {$\pi_1$};
\node at (6.3,-4) () {$\pi_2$};
\end{tikzpicture}
\end{document}
为了获得更好的结果: