Wie kann ich den Teil des hinteren Kegels transparent machen, sodass das Bild dreidimensional aussieht?

Wie kann ich den Teil des hinteren Kegels transparent machen, sodass das Bild dreidimensional aussieht?

Ich habe vor kurzem mit Tikz angefangen und bin absolut ratlos, wie ich den beschrifteten Teil transparent machen kann! Ich hoffe, jemand kann mir helfen. Vielen Dank im VorausBildbeschreibung hier eingeben

\usepackage{tikz,tikz-3dplot}
\tdplotsetmaincoords{80}{45}
\tdplotsetrotatedcoords{-90}{180}{-90}
\begin{document} 
\begin{figure}[!h]
\centering

 \tikzset{surface/.style={draw=blue!70!black, fill=blue!40!white, fill opacity=.6}}

 \newcommand{\coneback}[4][]{
 \draw[canvas is xy plane at z=#2, #1] (45-#4:#3) arc (45-#4:225+#4:#3) -- (O) --cycle;
 }
 \newcommand{\conefront}[4][]{
 \draw[canvas is xy plane at z=#2, #1] (45-#4:#3) arc (45-#4:-135+#4:#3) -- (O) --cycle;
 }
 \begin{tikzpicture}[tdplot_main_coords, grid/.style={help lines,blue!40!white,opacity=0.2},scale=1]
  \coordinate (O) at (0,0,0);
   \fill[blue!40!white,opacity=0.5] (-4,-4,0) -- (-4,4,0) -- (4,4,0) -- (4,-4,0) -- cycle;
  
   \foreach \x in {-4,...,4}
     \foreach \y in {-4,...,4}
     {
         \draw[grid] (\x,-4) -- (\x,4);
         \draw[grid] (-4,\y) -- (4,\y);
     }
   \coneback[surface]{-3}{2}{-12}
   \conefront[surface]{-3}{2}{-12}
   \draw[->] (-4,0,0) -- (4,0,0) {};
   \draw[->] (0,-4,0) -- (0,4,0) {};
   \coneback[surface]{3}{2}{12}
   \draw[-,dashed] (0,0,-2.65) -- (0,0,2.65) node[above] {};
   \draw[-,dashed] (0,0,-4) -- (0,0,-3.35) node[above] {};
   \draw[->,dashed] (0,0,3.35) -- (0,0,4) node[above] {$time$};
   \conefront[surface]{3}{2}{12}
   \fill (4,0,2) circle (2pt) node[above right] {$C$};
   \fill (0,0,0) circle (2pt) {};
   \fill (-0.5,-0.85,2.2) circle (2pt) node[above left] {$A$};
   \fill (1.3,0.5,2) circle (2pt) node[above left] {$B$};
   \draw[->,red] (0,0,0) -- (4,0,2) node[below, pos=0.6, rotate=26.5651,scale=0.70,black] {$\textbf{spacelike vector}$};
   \draw[->,red] (0,0,0) -- (1.3,0.5,2) node[below, pos=0.65, rotate=55.1459,scale=0.70,black] {$\textbf{lightlike vector}$};
   \draw[->,red] (0,0,0) -- (-0.5,-0.85,2.2) node[above, pos=0.57, rotate=-65.8557,scale=0.70,black] {$\textbf{timelike vector}$};
   \node[black] at (0,0,3) {$Future\,\,Light\,\,Cone$};
   \node[black] at (0,0,-3) {$Past\,\,Light\,\,Cone$};
   \node[black] at (0,0.05,0.3) {$O$};
   \node[black] at (0,4.7,0) {$space$};
   \node[black] at (5,-0.3,0) {$space$};
 \end{tikzpicture}
 \caption{Light Cone in 2d Space plus a Time Dimension}
 \label{cone}
\end{figure}

Antwort1

Zeichnen Sie zuerst den unteren Kegel. Zeichnen Sie dann die Ebene und dann den oberen Kegel. Auch eine Änderung des Farbschemas kann hilfreich sein, da das Blau auf Blau es schwieriger macht, zu erkennen, was davor liegt. Sie können die Ebene umranden, um zusätzlichen Kontrast zu erzeugen. Zuletzt würde ich die Zeitachse aufteilen, sodass die letzte Hälfte vor der Ebene gezeichnet wird.

Bildbeschreibung hier eingeben

\begin{figure}[!h]
\centering

 \tikzset{surface/.style={draw=blue!70!black, fill=blue!20!white, fill opacity=.6}}

 \newcommand{\coneback}[4][]{
 \draw[canvas is xy plane at z=#2, #1] (45-#4:#3) arc (45-#4:225+#4:#3) -- (O) --cycle;
 }
 \newcommand{\conefront}[4][]{
 \draw[canvas is xy plane at z=#2, #1] (45-#4:#3) arc (45-#4:-135+#4:#3) -- (O) --cycle;
 }
 \begin{tikzpicture}[tdplot_main_coords, grid/.style={help lines,violet!40!white,opacity=0.5},scale=1]
  \coordinate (O) at (0,0,0);
  
     \coneback[surface]{-3}{2}{-12}
   \conefront[surface]{-3}{2}{-12} 
  
   \fill[violet!40!white,opacity=0.5] (-4,-4,0) -- (-4,4,0) -- (4,4,0) -- (4,-4,0) -- cycle;
  
   \foreach \x in {-4,...,4}
     \foreach \y in {-4,...,4}
     {
         \draw[grid] (\x,-4) -- (\x,4);
         \draw[grid] (-4,\y) -- (4,\y);
         \draw[violet] (-4,4)--(-4,-4)--(4,-4)--(4,4)--cycle;
     }

   \draw[->] (-4,0,0) -- (4,0,0) {};
   \draw[->] (0,-4,0) -- (0,4,0) {};
   \coneback[surface]{3}{2}{12}
   \draw[-,dashed] (0,0,-2.65) -- (0,0,2.65) node[above] {};
   \draw[-,dashed] (0,0,-4) -- (0,0,-3.35) node[above] {};
   \draw[->,dashed] (0,0,3.35) -- (0,0,4) node[above] {$time$};
   \conefront[surface]{3}{2}{12}
   \fill (4,0,2) circle (2pt) node[above right] {$C$};
   \fill (0,0,0) circle (2pt) {};
   \fill (-0.5,-0.85,2.2) circle (2pt) node[above left] {$A$};
   \fill (1.3,0.5,2) circle (2pt) node[above left] {$B$};
   \draw[->,red] (0,0,0) -- (4,0,2) node[below, pos=0.6, rotate=26.5651,scale=0.70,black] {$\textbf{spacelike vector}$};
   \draw[->,red] (0,0,0) -- (1.3,0.5,2) node[below, pos=0.65, rotate=55.1459,scale=0.70,black] {$\textbf{lightlike vector}$};
   \draw[->,red] (0,0,0) -- (-0.5,-0.85,2.2) node[above, pos=0.57, rotate=-65.8557,scale=0.70,black] {$\textbf{timelike vector}$};
   \node[black] at (0,0,3) {$Future\,\,Light\,\,Cone$};
   \node[black] at (0,0,-3) {$Past\,\,Light\,\,Cone$};
   \node[black] at (0,0.05,0.3) {$O$};
   \node[black] at (0,4.7,0) {$space$};
   \node[black] at (5,-0.3,0) {$space$};
 \end{tikzpicture}
 \caption{Light Cone in 2d Space plus a Time Dimension}
 \label{cone}
\end{figure}

verwandte Informationen