绘制庞加莱球

绘制庞加莱球

我找到了一张庞加莱球图。我需要提交一个尽可能与图中相似的时间表。需要

  • 每个球体延伸轴,

  • 在剖面上画一个圆弧,

  • 做出正确的预测,

  • 使圆弧的可见部分成为实线,

  • 正确设置角落并签名。

到目前为止已经成功实现了这一点:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows,calc,math,angles,quotes}
\usepackage{blochsphere}
\usepackage{braket}

\begin{document}
    %%%% Измените эти параметры, чтобы изменить положение P или размер / вращение сферы.
    \def\rotationSphere{-100}
    \def\radiusSphere{2cm}
    \def\psiLat{60} % Повород вектора по элевации
    \def\psiLon{45} % Повород вектора по азимуту
    \begin{blochsphere}[radius=\radiusSphere,opacity=0,rotation=\rotationSphere]
        % \drawBallGrid[style={opacity=.3}]{30}{45} % Рисует медианы и  параллели
                
        % Рисуем сферу:
        \drawLongitudeCircle[]{\rotationSphere} % нарисуйте долготу, которая смотрит на нас, чтобы ограничить сферу
        
        % Рисуем экватор:
        \drawLatitudeCircle[style={dashed}]{0} 
        
        % Определите различные точки на шариковой сфере
        \labelLatLon{ket0}{90}{0}; % точка Z
        \labelLatLon{ket1}{-90}{0};
        \labelLatLon{ketminus}{0}{180};
        \labelLatLon{ketplus}{00}{0}; % точка x
        \labelLatLon{ketpluspi2}{0}{-90};  % Долгота, кажется, определена в "неправильном" направлении, отсюда минус
        \labelLatLon{ketplus3pi2}{0}{-270};
        \labelLatLon{psi}{\psiLat}{-\psiLon};
        
        % Рисуем и подписываем оси:
        %\draw[-latex] (0,0) -- (ket0) node[above,inner sep=.5mm] at (ket0) {\footnotesize $z$};
        \draw[-latex] (0,0) -- (ket0) node[above,inner sep=.5mm] at (ket0) {\footnotesize $z$};
        \draw[-latex] (0,0) -- (ketplus) node[below,inner sep=.5mm] at (ketplus) {\footnotesize$x$};
        \draw[-latex] (0,0) -- (ketpluspi2) node[below,inner sep=.5mm] at (ketpluspi2) {\footnotesize $y$};
        
        %\draw (-2,0) arc (180:360:2 and 0.6); % Нарисовать переднюю часть сферы.
        %\draw[dashed] (2,0) arc (0:180:2 and 0.6);
        \fill[fill=black] (0,0) circle (1pt);
        % Draw |psi>
        \draw[-latex] (0,0) -- (psi) node[above]{\footnotesize $P$};
        
        % Draw the angles
        \coordinate (origin) at (0,0);
        {
            % Will draw the angle/projection one the equatorial plane
            \setDrawingPlane{0}{0}
            % Draw the projection: cos is used to compute the length of the projection
            \draw[current plane,dashed] (0,0) -- (-90+\psiLon:{cos(\psiLat)*\radiusSphere}) coordinate (psiProjectedEquat) -- (psi);
            % Draw the angle
            \pic[current plane, draw,fill=orange!50,fill opacity=.5, text opacity=1,"\footnotesize $\phi$", angle eccentricity=2.2]{angle=ketplus--origin--psiProjectedEquat};
        }
        { \setLongitudinalDrawingPlane{\psiLon}
            % Draw the angle
            \pic[current plane, draw,fill=orange!50,fill opacity=.5, text opacity=1,"\footnotesize $\theta$", angle eccentricity=1.5]{angle=psi--origin--ket0};
        }
    \end{blochsphere}
\end{document}

答案1

嗯,我不知道你到底需要什么,但你可以继续这样做:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{angles,quotes}
\usepackage{blochsphere}

\begin{document}
    %%%% Измените эти параметры, чтобы изменить положение P или размер / вращение сферы.
    \def\rotationSphere{-100}
    \def\radiusSphere{2cm}
    \def\psiLat{60} % Повород вектора по элевации
    \def\psiLon{45} % Повород вектора по азимуту
    \begin{blochsphere}[radius=\radiusSphere,opacity=0,rotation=\rotationSphere]
        % \drawBallGrid[style={opacity=.3}]{30}{45} % Рисует медианы и  параллели
                
        % Рисуем сферу:
        \drawLongitudeCircle[]{\rotationSphere} % нарисуйте долготу, которая смотрит на нас, чтобы ограничить сферу
        
        % Рисуем экватор:
        % \drawLatitudeCircle[style={dashed}]{0} 
        
        { \setDrawingPlane{0}{0}
        }
        
        % Определите различные точки на шариковой сфере
        \labelLatLon{ket0}{90}{0}; % точка Z
        \labelLatLon{ket1}{-90}{0};
        \labelLatLon{ketminus}{0}{180};
        \labelLatLon{ketplus}{0}{0}; % точка x
        \labelLatLon{ketpluspi2}{0}{-90};  % Долгота, кажется, определена в "неправильном" направлении, отсюда минус
        \labelLatLon{ketplus3pi2}{0}{-270};
        \labelLatLon{psi}{\psiLat}{-\psiLon};
        
        % Рисуем и подписываем оси:
        \draw[-latex, shorten >=-.5cm] (0,0) -- (ket0) node[above right] {\footnotesize $z$};
        \draw[-latex, shorten >=-.5cm] (0,0) -- (ketplus) node[below right]  {\footnotesize$x$};
        \draw[-latex, shorten >=-.5cm] (0,0) -- (ketpluspi2) node[below right] {\footnotesize $y$};
        
        %\draw (-2,0) arc (180:360:2 and 0.6); % Нарисовать переднюю часть сферы.
        %\draw[dashed] (2,0) arc (0:180:2 and 0.6);
        \fill[fill=black] (0,0) circle (1pt);
        % Draw |psi>
        \draw[-latex] (0,0) -- (psi) node[above]{\footnotesize $P$};
        
        % Draw the angles
        \coordinate (origin) at (0,0);
        {
            % Will draw the angle/projection one the equatorial plane
            \setDrawingPlane{0}{0}
            % Draw the projection: cos is used to compute the length of the projection
            \draw[current plane,dashed] (0,0) -- (-90+\psiLon:{cos(\psiLat)*\radiusSphere}) coordinate (psiProjectedEquat) -- (psi);
            % Draw the angle
            \pic[current plane, draw,fill=orange!50,fill opacity=.5, text opacity=1,"\footnotesize $\psi$", angle eccentricity=2.2]{angle=ketplus--origin--psiProjectedEquat};
            
            % Custom latitude circle
            \draw[current plane, dashed, red] (0:2) arc (0:180:2);
            \draw[current plane, red] (180:2) arc (180:360:2);
        }
        { \setLongitudinalDrawingPlane{\psiLon}
            % Arc on psi pane
            \draw[current plane,red] (0:2) arc (0:90:2);
            \draw[current plane,densely dashed,red] (psi) -- (psi -| 0,0);
            
            % Draw the angle
            \pic[current plane, draw,fill=orange!50,fill opacity=.5, text opacity=1,"\footnotesize $\theta$", angle eccentricity=1.5]{angle=psi--origin--ket0};
        }
    \end{blochsphere}
\end{document}

我用红色标记了添加的路径,并将你的序言精简为这个例子真正需要的内容。

在此处输入图片描述

相关内容