使用 3dstructuralanalysis 库计算三维坐标

使用 3dstructuralanalysis 库计算三维坐标

tikz 库structuralanalysis提供了该point命令。

%------------------------------------------------
%       point
%------------------------------------------------
%           \point{name}{x-coordiante}{y-coordiante}
%           

\newcommandx{\point}[3]{
\node[coordinate][
    shift={(#2*\scalingParameter,
            #3*\scalingParameter)}](#1){};
}

因此,使用这个包我可以通过以下方式定义点:

\point{a}{0}{0};
\point{b}{2}{3};

并通过(也使用calc包):

\point{c}{$(a)+(b)$};

我还想使用该3dstructuralanalysis库在 3d 中使用最后一行代码。该库提供了dpoint3d 点的命令。

%------------------------------------------------
%       3dpoint
%------------------------------------------------
%           \point{name}{x-coordiante}{y-coordiante}{z-coordiante};
%

\newcommandx{\dpoint}[4]{
   \node[coordinate][
        shift={(#2*\DscalingParameter,
                #3*\DscalingParameter,
                #4*\DscalingParameter)}](#1){};
  \ifthenelse{\equal{\DshowPointParameter}{1}}{
      \draw (#2*\DscalingParameter,
             #3*\DscalingParameter,
             #4*\DscalingParameter) node [above,red]{#1};
  }{}
}

因此,使用这个包我可以通过以下方式定义点:

\dpoint{a}{0}{0}{0};
\dpoint{b}{2}{3}{4};

但不是

\dpoint{c}{$(a)+(b)$};

那么问题是,有没有办法在3d中实现这种坐标的计算?

答案1

在底层,\point只需\dpoint创建普通的 TikZ 节点。这样你就可以直接将库中的所有算法calc应用于这些节点。例如

\documentclass{article}
\usepackage{3dstructuralanalysis}
\begin{document}
\begin{tikzpicture}
  \dpoint{a}{1}{1}{1};
  \dpoint{b}{2}{3}{4};
  \coordinate (c) at ($(a)+(b)$);
  \foreach \p in {a,b,c}
    \node at (\p) {\p};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容