
Я получаю разные выходные изображения при использовании именованных v/s raw-координат в tikz-3dplot. Есть ли способ распечатать значения координат, чтобы помочь в отладке или проверке любых файлов журнала. Минимальный пример ниже:
\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}
решение1
Вы не использовали tdplot_main_coords
при определении символической координаты M
. Если вы замените
\coordinate (M) at (0.5*\xmax,0.5*\ymax,0);
к
\path[tdplot_main_coords] (0.5*\xmax,0.5*\ymax,0) coordinate (M);
оба результата совпадают.
\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}
Библиотека calc
, которая автоматически загружается tikz-3dplot
, позволяет сравнивать экранные координаты именованных узлов/координат. Неофициальная библиотека3dtools
позволяет извлечь координаты, которые использовались для определения узла/координаты, но на данном этапе не сохраняет информацию о том, в каких системах координат они были определены.