A função tdplotsetrotatedcoords está funcionando em eixos, mas não em arcos desenhados (círculo)

A função tdplotsetrotatedcoords está funcionando em eixos, mas não em arcos desenhados (círculo)

De acordo comdocumentação do tikz-3dplot, tdplotsetrotatedcoordsdeve girar recursos seguindo o conjunto de rotações dos ângulos de Euler:

Descrição:

Gera o estilo tdplot_rotated_coordsque fornece a transformação de coordenadas para o quadro de coordenadas girado dentro do quadro de coordenadas principal atual, com base nos ângulos de Euler especificados pelo usuário (α,β,γ). As rotações usam a convenção z(α)y(β)z(γ) das rotações de Euler, onde o sistema é girado por γ em torno do eixo z, então β em torno do eixo y (mundo) e então α em torno de ( mundo) eixo z.

Sintaxe:

\tdplotsetrotatedcoords{α}{β}{γ}

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}

\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]

\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};

\tdplotdrawarc[green]{(O)}{.8\radius}{0}{360}{}{}

\tdplotsetrotatedcoords{10}{30}{70}
\tdplotdrawarc[red]{(O)}{\radius}{0}{360}{}{}

\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(.7,0,0) node[anchor=north]{$x’$};
\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(0,.7,0) node[anchor=west]{$y’$};
\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(0,0,.7) node[anchor=south]{$z’$};
\end{tikzpicture}

\end{document}

é renderizado como:

Desenho resultante

No entanto, o círculo vermelho está sempre no mesmo plano xy que o círculo verde original não girado.

Eu esperava que ele fosse girado no plano x'y'.

Como conseguir isso corretamente?
A \tdplotsetrotatedcoordsfunção parece não funcionar.

Responder1

Parece que tenho que colocar o desenho do círculo em um 'escopo', mas para os eixos não é o caso:

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}
\begin{tikzpicture}[tdplot_main_coords]
\tdplotsetmaincoords{70}{110}
\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};

\tdplotdrawarc[green]{(O)}{.8\radius}{0}{360}{}{}
\tdplotsetrotatedcoords{10}{30}{70}
% Scope enclosing here:
\begin{scope}[tdplot_rotated_coords]
  \tdplotdrawarc[red]{(O)}{\radius}{0}{360}{}{}
\end{scope}

\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(.7,0,0) node[anchor=north]{$x’$};
\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(0,.7,0) node[anchor=west]{$y’$};
\draw[thick,color=blue,tdplot_rotated_coords,->] (0,0,0) --(0,0,.7) node[anchor=south]{$z’$};
\end{tikzpicture}
\end{document}

Resultado:

resultado

informação relacionada