我已经创建了一个Bloch sphere
我想显示赤道平面与球体的交点。我尝试了以下方法,但我相信还有改进的空间。
\documentclass[border=5pt]{standalone}
\usepackage{blochsphere}
\usepackage{tikz-3dplot}
\begin{document}
\begin{blochsphere}[radius = 1.5 cm, tilt = 15, rotation = -45, opacity = 0.20]
% Drawing the equatorial plane
\tdplotsetmaincoords{5}{0}
\tdplotsetrotatedcoords{0}{0}{0}
\begin{scope}[tdplot_rotated_coords]
\draw[fill=blue,opacity=0.2, scale=3] (-0.5,0,-0.5) -- (-1,0,1) -- (1,0,1) -- (0.5,0,-1) -- cycle;
\end{scope}
% Draw the ball and grid
\drawBallGrid[style={opacity=0.5, color = blue, loosely dashed}]{180}{180}
% Axes (X, Y, Z)
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.50]{x}{90}{90}
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.50]{y}{90}{00}
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.15]{z}{00}{00}
\end{blochsphere}
\end{document}
答案1
我认为您希望tikz-3dplot
与 结合使用blochsphere
。这些包有不同的方法来设置视角。因此,需要调整 中的 theta 角度tikz-3dplot
以匹配 使用的投影blochsphere
。
\documentclass[border=5pt]{standalone}
\usepackage{blochsphere}
\usepackage{tikz-3dplot}
\begin{document}
\begin{blochsphere}[radius = 1.5 cm, tilt = 15, rotation = -45, opacity = 0.20]
% Drawing the equatorial plane
\tdplotsetmaincoords{105}{45}
\tdplotsetrotatedcoords{0}{0}{0}
\begin{scope}[tdplot_main_coords,canvas is xy plane at z=0,on layer=back]
\fill[blue!40,opacity=0.5] (-6,-6) -- (225:1.5) arc(225:45:1.5)
-- (6,6) -- (6,-6) --cycle;
\end{scope}
% Draw the ball and grid
\drawBallGrid[style={opacity=0.5, color = blue, loosely dashed}]{180}{180}
% Axes (X, Y, Z)
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.50]{x}{90}{90}
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.50]{y}{90}{00}
\drawStatePolar[axisarrow = true, statewidth = 0.5, scale = 1.15]{z}{00}{00}
\begin{scope}[tdplot_main_coords,canvas is xy plane at z=0,on layer=front]
\fill[blue!40,opacity=0.5] (-6,-6) -- (225:1.5) arc(225:45:1.5)
-- (6,6) -- (-6,6) --cycle;
\end{scope}
\end{blochsphere}
\end{document}