Imagem de saída diferente ao usar coordenadas no tikz

Imagem de saída diferente ao usar coordenadas no tikz

Estou obtendo imagens de saída diferentes ao usar coordenadas brutas nomeadas v/s no tikz-3dplot. Existe uma maneira de imprimir qual é o valor das coordenadas para ajudar a depurar ou verificar quaisquer arquivos de log. Exemplo mínimo abaixo:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{calc}

\begin{document}

    \tdplotsetmaincoords{70}{100}%right hand
    \begin{tikzpicture}[scale=2]
        \def\xmax{2}
        \def\ymax{2}
        \def\dz{0.2}
        \coordinate (M) at (0.5*\xmax,0.5*\ymax,0);
        \draw[fill=green!40!white, opacity = 0.5,tdplot_main_coords]
        ({0},{0},{0}) to [out=30,in=200]
        ({0},{\ymax},{0}) to
        ({\xmax},{\ymax},{0}) to[out=200,in=30]
        ({\xmax},{0},{0}) to
        ({0},{0},{-\dz}) to
         (M) to
        (0,0,0);
        \end{tikzpicture}

    \tdplotsetmaincoords{70}{100}%right hand
    \begin{tikzpicture}[scale=2]
        \def\xmax{2}
        \def\ymax{2}
        \def\dz{0.2}
        \draw[fill=green!40!white, opacity = 0.5,tdplot_main_coords]
        ({0},{0},{0}) to [out=30,in=200]
        ({0},{\ymax},{0}) to
        ({\xmax},{\ymax},{0}) to[out=200,in=30]
        ({\xmax},{0},{0}) to
        ({0},{0},{-\dz}) to
         (0.5*\xmax,0.5*\ymax,0) to
        (0,0,0);
        \end{tikzpicture}

\end{document}

Imagem de saída

Responder1

Você não usou tdplot_main_coordsao definir a coordenada simbólica M. Se você substituir

\coordinate (M) at (0.5*\xmax,0.5*\ymax,0);

por

\path[tdplot_main_coords] (0.5*\xmax,0.5*\ymax,0) coordinate (M);

ambos os resultados coincidem.

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}

\begin{document}

    \tdplotsetmaincoords{70}{100}%right hand
    \begin{tikzpicture}[scale=2]
        \def\xmax{2}
        \def\ymax{2}
        \def\dz{0.2}
        \path[tdplot_main_coords] (0.5*\xmax,0.5*\ymax,0) coordinate (M);
        \draw[fill=green!40!white, opacity = 0.5,tdplot_main_coords]
        ({0},{0},{0}) to [out=30,in=200]
        ({0},{\ymax},{0}) to
        ({\xmax},{\ymax},{0}) to[out=200,in=30]
        ({\xmax},{0},{0}) to
        ({0},{0},{-\dz}) to
         (M) to
        (0,0,0);
        \end{tikzpicture}

    \tdplotsetmaincoords{70}{100}%right hand
    \begin{tikzpicture}[scale=2]
        \def\xmax{2}
        \def\ymax{2}
        \def\dz{0.2}
        \draw[fill=green!40!white, opacity = 0.5,tdplot_main_coords]
        ({0},{0},{0}) to [out=30,in=200]
        ({0},{\ymax},{0}) to
        ({\xmax},{\ymax},{0}) to[out=200,in=30]
        ({\xmax},{0},{0}) to
        ({0},{0},{-\dz}) to
         (0.5*\xmax,0.5*\ymax,0) to
        (0,0,0);
        \end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

A calcbiblioteca, que é carregada automaticamente por tikz-3dplot, permite comparar as coordenadas da tela de nós/coordenadas nomeados. A biblioteca não oficial3dtoolspermite recuperar as coordenadas que foram utilizadas para definir o nó/coordenada, mas neste ponto não armazena a informação em quais sistemas de coordenadas foram definidas.

informação relacionada