Composição de duas rotações em tikz

Composição de duas rotações em tikz

Meta

Usandotikz-3dplot, eu gostaria de desenhar ogrande círculoque delineia qual seria o contorno da esfera de raio 1 vista do ponto de vista fixo (ou seja, o plano perpendicular ao vetor que descreve a direção da visão) para evitar que outros círculos máximos dêem a impressão de que "vão fora" dessa esfera (contornos roxos na figura abaixo, de modo que não mostra nenhuma sobreposição com todos os outros 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 do código atual:

Desenho resultante

O que eu gostaria é de pegar o resultado da composição da primeira, depois da segunda rotação (nessa ordem) na Testingparte mas não sei como contar isso para o tikz.

Responder1

Adicionando isso ao tikzpictureproblema descrito foi resolvido:

\tdplotsetrotatedcoords{\azimuth-90}{75}{0}
\begin{scope}[tdplot_rotated_coords]
  \tdplotdrawarc[red]{(O)}{\radius}{0}{360}{}{}
\end{scope}

Aqui está o círculo resultante (em vermelho) para um ângulo polar de 55 graus em vez de 75 para um melhor efeito visual:

resultado_55

A mágica aparece usando a \tdplotsetrotatedcoordsfunção:

definição da função tdplotsetrotatedcoords

Fonte:O pacote tikz-3dplot por Jeff Hein, 24 de janeiro de 2010

informação relacionada