Hyperboloid mit Geodäte zeichnen
Hallo liebe Community,
hoffentlich wird hier mein Beispiellose angezeigt. >.< Ich habe ebenso Schwierigkeiten diese Bild in Tikz umzusetzen:
[![alt text][1]][2]
Gerade die Geodäte und die gestrichelten (quasi nicht sichtbaren) Linien bereiten mir Kopfzerbrechen. Hier mein Beispiellose (in der Hoffnung es funktioniert):
\documentclass{standalone}
%
% File name: paraboloid-plane.tex
% Description:
% A solid bounded by the following surfaces
% z = 0
% z = \sqrt{x^{2} + y^{2}}
% x^{2} + y^{2} + z^{2} = 1
% is generated. I.e., the intersection of paraboloid and a plane.
%
% Date of creation: April, 23rd, 2022.
% Date of last modification: April, 23rd, 2022.
% Author: Efraín Soto Apolinar.
% https://www.aprendematematicas.org.mx/author/efrain-soto-apolinar/instructing-courses/
% Terms of use:
% According to TikZ.net
% https://creativecommons.org/licenses/by-nc-sa/4.0/
%
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usepackage{tikz-3dplot}
\usetikzlibrary{math}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{1pt}
\begin{document}
\tdplotsetmaincoords{60}{130}
\begin{tikzpicture}[tdplot_main_coords,scale=0.75]
\tikzmath{function f(\x) {return \x;};}
\pgfmathsetmacro{\zini}{0.5*sqrt(2.0)}
\pgfmathsetmacro{\step}{0.01}
\pgfmathsetmacro{\zsig}{\zini+\step}
\pgfmathsetmacro{\nextz}{\zini+0.5*\step}
\pgfmathsetmacro{\sig}{2.0*\step}
\pgfmathsetmacro{\tini}{0.5*pi}
\pgfmathsetmacro{\tfin}{1.85*pi}
\pgfmathsetmacro{\tend}{2.5*pi}
%%% Coordinate axis
\draw[thick,->] (0,0,0) -- (3.5,0,0);
\draw[thick] (0,0,0) -- (-4,0,0);
\draw[thick,->] (0,0,0) -- (0,3.5,0);
\draw[thick] (0,0,0) -- (0,-4,0);
\draw[thick,->] (0,0,0) -- (0,0,6.0); % Z axis (part under the plane z = 4)
% The region of integration
%
% The plane: x + y = 2
\coordinate (A) at (2,2,4);
\coordinate (B) at (-2,2,4);
\coordinate (C) at (-2,-2,4);
\coordinate (D) at (2,-2,4);
% The paraboloid (level curves z = constant)
\foreach \altura in {\step,\sig,...,4.0}{
\pgfmathparse{sqrt(\altura)}
\pgfmathsetmacro{\radio}{\pgfmathresult}
\draw[cyan,thick,opacity=0.25] plot[domain=0:6.2832,smooth,variable=\t] ({\radio*cos(\t r)},{\radio*sin(\t r)},{\altura+2});
}
%
\node[ForestGreen,right, scale=0.4] at (1,1.8,3) {$\footnotesize{\mathrm{d}(O,M)^2=-R^2}$};
\draw[thick,->] (0,0,4.87) -- (0,0,6);
\draw[ForestGreen, thick] (0,0,0) -- (-2,0,2.7);
\coordinate (A) at (0,0,0);
\coordinate (B) at (-2,0,2.7);
\fill[ForestGreen] (A) circle (2pt);
\fill[ForestGreen] (B) circle (2pt);
\coordinate(C) at (0,0.1,0.15);
\node[ForestGreen, above left] at (C) {$O$};
\node[ForestGreen, right] at (B) {$M$};
\end{tikzpicture}
\end{document}
Vielleicht habe ich auch hier wieder zu kompliziert gedacht und es geht wesentlich einfacher. Ich bin über jede Hilfe dankbar.
EDIT: Auch hier meine Ausgabe:
[![alt text][3]][3]
[1]: https://texwelt.de/upfiles/Bild5.png
[2]: https://texwelt.de/upfiles/Bild5.png
[3]: https://texwelt.de/upfiles/Bildschirmfoto_2024-10-12_um_15.45.48_1.png