
Meta
Usandotikz-3dplot
, me gustaría dibujar elgran circuloque delinea lo que sería el contorno de la esfera de radio 1 vista desde el punto de vista fijo (en otras palabras, el plano perpendicular al vector que describe la dirección de la vista) para evitar otros círculos máximos que den la impresión de que "van fuera" de esa esfera (contornos morados en la figura siguiente, por lo que no muestra ninguna superposición con cada uno de los otros grandes círculos).
MWE
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage[english]{babel}
\usepackage{float}
\usepackage{tikz}
\usepackage{tikz-3dplot}
%%%%%%%%
\begin{document}
\pgfmathsetmacro{\rvec}{1}
\pgfmathsetmacro{\thetavec}{54}
\pgfmathsetmacro{\phivec}{54}
\pgfmathsetmacro{\view}{135}
\tdplotsetmaincoords{75}{\view}
\definecolor{darkgreen}{rgb}{0.1,0.9,0.1}
\begin{tikzpicture}[scale=5,tdplot_main_coords]
\coordinate (O) at (0,0,0);
% Axes
\draw[thick,->] (O) -- (2.0,0,0) node[anchor=north east]{$X$};
\draw[thick,->] (O) -- (0,2.0,0) node[anchor=north west]{$Y$};
\draw[thick,->] (O) -- (0,0,1.4) node[anchor=south]{$Z$};
% Great circle in the OXZ plane
\tdplotsetthetaplanecoords{0}
\tdplotdrawarc[tdplot_rotated_coords]{(O)}{\rvec}{0}{180}{}{}
\tdplotdrawarc[tdplot_rotated_coords,loosely dashed,gray]{(O)}{\rvec}
{180}{360}{}{}
% Great circle in the OYZ plane
\tdplotsetthetaplanecoords{90}
\tdplotdrawarc[tdplot_rotated_coords]{(O)}{\rvec}{0}{180}{}{}
\tdplotdrawarc[tdplot_rotated_coords,losely dashed,gray]{(O)}{\rvec}
{180}{360}{}{}
% Great circle in the OXY plane
\tdplotdrawarc[blue]{(O)}{\rvec}{-55}{125}{}{}
\tdplotdrawarc[loosely dashed,blue]{(O)}{\rvec}{125}{305}{}{}
%% Testing great circles
% Rotated Great circle around Z-axis, this is the first wanted rotation
% to bring it in the original, non rotated "O-Y_ori-Z" plane.
\tdplotsetthetaplanecoords{\view}
\tdplotdrawarc[tdplot_rotated_coords,cyan]{(O)}{\rvec}{0}{360}{}{}
% Rotated big circle around Y-axis, this second rotation should be applied
% just after the previous one, i.e. on the great circle colored in cyan.
% How to do that ?
\tdplotsetrotatedthetaplanecoords{15}
\tdplotdrawarc[tdplot_rotated_coords,darkgreen]{(O)}{\rvec}{0}{360}{}{}
\end{tikzpicture}
\end{document}
Resultado del código actual:
Lo que me gustaría es obtener el resultado de la composición de la primera, luego la segunda rotación (en ese orden) en la Testing
parte pero no sé cómo decírselo a tikz.
Respuesta1
Agregando esto al tikzpicture
resuelto el problema descrito:
\tdplotsetrotatedcoords{\azimuth-90}{75}{0}
\begin{scope}[tdplot_rotated_coords]
\tdplotdrawarc[red]{(O)}{\radius}{0}{360}{}{}
\end{scope}
Aquí está el círculo resultante (en rojo) para un ángulo polar de 55 grados en lugar de 75 para un mejor efecto visual:
Lo mágico aparece usando la \tdplotsetrotatedcoords
función:
Fuente:El paquete tikz-3dplot por Jeff Hein, 24 de enero de 2010